дождитесь завершения процесса внутри функции ThreadPool.UnsafeQueueUserWorkItem () - PullRequest
0 голосов
/ 05 июля 2011

Я делаю веб-приложение, которое будет воспроизводить мультимедиа. У меня есть класс A, который содержит метод, скажем, MyMethod:

public void MyMethod()
        {
            .....
            Process proc = ....
            ThreadPool.UnsafeQueueUserWorkItem((o) =>
            {
                proc.WaitForExit();
                proc.Close();
                .....

             },null);
          }

в коде моей страницы я назову этот метод, который запустит процесс, а затем воспроизведет носитель, процесс преобразует файл в тип .flv. Моя проблема заключается в использовании асинхронной системы, даже если поток этого не сделал закончите свою работу при выгрузке, страница загрузится, но без воспроизведения медиа. Как я могу дождаться завершения процесса внутри ThreadPool? и ТОГДА загрузить мою страницу ?? Большое спасибо.

1 Ответ

1 голос
/ 05 июля 2011

Если вы хотите, чтобы ваш ответ asp.net ожидал результата процесса, вызовите WaitForExit напрямую. Не используйте ThreadPool.

Если по какой-то причине вы чувствуете, что вам абсолютно необходимо использовать ThreadPool, вы можете использовать ManualResetEvent, чтобы дождаться результата в вызывающем потоке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...