2011-07-05 28 views
0

我正在做一个将播放媒体的Web应用程序。 我有一个包含一个方法的类A,说的MyMethod:等待一个进程完成ThreadPool.UnsafeQueueUserWorkItem()函数内部

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

      },null); 
      } 

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

+2

如果你想等待代码完成,你为什么排队一个线程池任务做到这一点呢? –

+0

我希望它在加载页面之前完成 – Grace

+0

那么为什么不在页面加载之前的最后一点调用'WaitForExit'呢? –

回答

1

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

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

+0

我做了两个方法..一个同步,一个异步。 ive没有同步的概率..我用了waitforexit ...但是m面临线程池的问题..生病检查手册结束 – Grace

+0

@Grace,如果你想等待,不要使用ThreadPool。 –

+0

oke现在我明白了,谢谢 – Grace