2011-08-01 31 views
0

我使用的是多線程應用程序。如何跟蹤特定主題已完成

ThreadStart thSA = new ThreadStart(saBroker.SearchContract); 
        DTThread threadSA = new DTThread(thSA, WaitForSA); 
        brokerThreads.Add(threadSA); 

ThreadStart thSA1 = new ThreadStart(saBroker1.SearchContract); 
        DTThread threadSA1 = new DTThread(thSA1, WaitForSA1); 
        brokerThreads.Add(threadSA1); 
      brokerThreads.StartAll(); 

現在我有場景,我有threadSA1完成後執行特定的任務。 那麼,我如何跟蹤具體的線程完成。

請幫助...

回答

2

什麼是DTThread類?如果這是從類繼承Thread,你可以等待它Join()方法:

ThreadStart thSA = new ThreadStart(saBroker.SearchContract); 
        DTThread threadSA = new DTThread(thSA, WaitForSA); 
        brokerThreads.Add(threadSA); 

ThreadStart thSA1 = new ThreadStart(saBroker1.SearchContract); 
        DTThread threadSA1 = new DTThread(thSA1, WaitForSA1); 
        brokerThreads.Add(threadSA1); 
      brokerThreads.StartAll(); 
threadSA1.Join(); 
0

您可以使用wait和notify戰術線程之間的同步,例如,主線程使用阻斷指令,停止,然後之前threadSA1完成它喚醒阻塞的線程。

看看本文的詳細信息,我認爲這將幫助您: http://www.csharphelp.com/2006/12/thread-and-sync-in-c/

在筆者使用的文章:

 mre.WaitOne(); 

mre.Set(); 

爲等待和分別通知