在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内的进程终止?然后加载我的页面??非常感谢。

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

如果您希望您的asp.net resqponse等待处理结果,请直接调用WaitForExit。不要使用线程池。

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