回答
如果您有等待完成的線程的引用,則可以在這些引用上調用.Join()方法。這將導致您的主線程等待,直到您調用.Join()的線程完成後再繼續。
或者,您可以創建主線程和子線程都可以訪問的ManualResetEvents數組。每個子線程都有一個對主線程有權訪問的數組中的一個事件的引用。在主線程結束的事件數組上調用WaitHandle.WaitAll(事件數組),並在每個子線程結束時調用.Set()函數發出主線程子線程完成信號。
主線程退出之前,下面將阻塞,直到所有子線程調用.SET()在他們的活動:
WaitHandle.WaitAll的(事件數組);
請記住,WaitAll將只允許多達64個句柄等待。在服務停止事件處理程序中,您可能需要遍歷所有事件並在所有句柄上顯式調用WaitOne – 2009-09-23 03:12:10
實際上將Thread.Interpt和Thread.Join – 2009-09-23 18:42:08
您可以保留一個List,並在服務停止時依次調用它們中的每個Thread.Join。這將等到每個人都離開。
- 1. 等待UI線程完成
- 2. 等待線程完成python
- 3. Java等待線程完成
- 4. Java多線程等待線程完成
- 5. 等待方法完成
- 6. 活動完成方法等待完成?
- 7. 如何讓我的方法等待所有線程完成?
- 8. 使主程序等待線程完成
- 9. 等待Java中的線程完成
- 10. 若要完成線程的等待(Android)
- 11. 等待同步異步方法在同一線程上完成
- 12. Android:等待線程完成執行方法
- 13. 等待線程完成執行上
- 14. 等待,直到線程完成擺好
- 15. 如何等待所有線程完成
- 16. 異步等待一個線程完成
- 17. 等待線程循環完成
- 18. 讓Android MainActivity等待線程完成
- 19. C#等待所有線程完成Main()
- 20. SDL和C++:等待多線程完成
- 21. 試圖等待所有線程完成
- 22. 等待線程池完成執行
- 23. 等待線程完成執行
- 24. C#等待多個線程完成
- 25. 如何等待一個線程完成
- 26. C++等待所有線程完成
- 27. 如何等待所有線程完成?
- 28. ManualResetEvent不等待線程池完成
- 29. 新線程永不完成等待WebBrowser
- 30. AJAX線程 - 如何等待它完成?
我認爲你的意思是像「等待線程完成的標準方法」。進程有線程,而不是其他方式。 – 2009-09-22 12:57:53