等待进程在ThreadPool.UnsafeQueueUserWorkItem()函数内完成

时间:2011-07-05 12:37:24

标签: c# asp.net process threadpool

我正在做一个播放媒体的网络应用程序。   我有一个包含方法的A类,比如MyMethod:

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

             },null);
          }

在我的页面后面的代码我将调用此方法将运行该进程,然后将播放媒体,该过程将文件转换为.flv类型。我的问题是becoz即时使用异步系统,即使线程没有完成卸载工作后,页面将加载但不播放媒体。我如何等待ThreadPool内的进程终止?然后加载我的页面?非常感谢。

1 个答案:

答案 0 :(得分:1)

如果您希望asp.net resqponse等待进程结果,请直接调用WaitForExit。不要使用ThreadPool。

如果由于某种原因您认为您绝对需要使用ThreadPool,则可以使用ManualResetEvent在调用线程中等待结果。