我有以下問題:我有監控級別,這是運行它自己的線程,從隊列中寫道:到文件中(所以主應用程序不必在IO上等待)。但是,當主應用程序線程結束時(控制流在最後一行之後運行),監視器線程也會結束,即使它仍在運行(完整隊列)。
有沒有辦法,不修改主線程等待工作線程完成? C#。
編輯:我不能修改主線程。我使用給定的API(包含我應該寫什麼,從配置中讀取什麼的靜態方法)只寫'支持'代碼,沒有辦法改變線程,主應用程序不能取決於我的代碼。
我有以下問題:我有監控級別,這是運行它自己的線程,從隊列中寫道:到文件中(所以主應用程序不必在IO上等待)。但是,當主應用程序線程結束時(控制流在最後一行之後運行),監視器線程也會結束,即使它仍在運行(完整隊列)。
有沒有辦法,不修改主線程等待工作線程完成? C#。
編輯:我不能修改主線程。我使用給定的API(包含我應該寫什麼,從配置中讀取什麼的靜態方法)只寫'支持'代碼,沒有辦法改變線程,主應用程序不能取決於我的代碼。
切換它們。讓你的主線程成爲監視器的主線程,並從那裏產生工作線程(從Q寫入文件)。
,或對顯示器和工作在主線程啓動線程,然後讓主線程自旋並等待(循環,直到它從其他線程中止/完整通知)
可以使用的ManualResetEvent和呼叫WaitOne()在主執行線程的末尾。當完成工作線程時,只需發出ManualResetEvent信號,它將繼續執行主線程。