我正在使用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 完成后执行特定任务。 那么,我如何跟踪特定的线程完成。
请帮助......
答案 0 :(得分: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();
答案 1 :(得分:1)
现在我有一个场景,我必须在之后执行特定的任务 threadSA1完成了。那么,我如何跟踪特定的线程 完整。
如何使用委托回调?
http://msdn.microsoft.com/en-us/library/system.asynccallback(v=VS.100).aspx
答案 2 :(得分:0)
您可以使用等待和通知策略在线程之间执行同步,以便使用阻塞指令暂停主线程,然后在 threadSA1 完成之前,它会唤醒被阻塞的线程。
请查看本文以获取更多信息,我认为这些信息对您有所帮助: http://www.csharphelp.com/2006/12/thread-and-sync-in-c/
在作者使用的文章中:
mre.WaitOne();
和
mre.Set();
分别等待和通知