在ThreadPool.UnsafeQueueUserWorkItem()函数内等待进程完成
本文关键字:等待 进程 函数 ThreadPool UnsafeQueueUserWorkItem | 更新日期: 2023-09-27 18:01:04
我正在做一个将播放媒体的web应用程序。我有一个包含方法的类a,比如MyMethod:
public void MyMethod()
{
.....
Process proc = ....
ThreadPool.UnsafeQueueUserWorkItem((o) =>
{
proc.WaitForExit();
proc.Close();
.....
},null);
}
在我页面后面的代码中,我将调用这个方法,该方法将运行进程,然后播放媒体,进程将文件转换为.flv类型。我的问题是,由于使用异步系统,即使线程在卸载时没有完成工作,页面也会加载,但不会播放媒体。如何等待ThreadPool内的进程终止?然后加载我的页面??非常感谢。
如果您希望您的asp.net resqponse等待处理结果,请直接调用WaitForExit。不要使用线程池。
如果出于某种原因,您觉得绝对需要使用ThreadPool,可以使用ManualResetEvent在调用线程中等待结果。