2011-08-01 8 views
0

私はMultiThreadアプリケーションを使用しています。特定のスレッドが完了したことを追跡する方法

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

あなたは待機を使用して、メインスレッドがthreadSA1は、それがブロックされたスレッドをウェイクアップ完了直前に、その後、ブロッキング命令を使用して停止しているように、スレッド間の同期を実行するための戦術を通知することができます。

は、私はあなたを助けると思われ、より多くの情報については、この記事を見てみましょう:記事で http://www.csharphelp.com/2006/12/thread-and-sync-in-c/

を著者が使用するための:

 mre.WaitOne(); 

mre.Set(); 

をお待ちしております。

関連する問題