[英]Starting and Stopping concurrent threads through Windows Service
我是.NET環境的新手。 我需要一個Windows服務,該服務的Start
和Stop
方法將調用特定的類,分別說MainContext的Start和Stop方法。 MainContext類將包含通過MEF加載的擴展列表。 每個擴展都需要以並發方式作為單獨的線程運行。
MainContext
類將包含兩個公共方法Start
和Stop
,它們的返回類型均為void並且不包含任何參數。 在調用Start
方法時,它將以並發方式為通過MEF加載的每個擴展啟動線程。 而Stop
方法將停止由Start
方法啟動的所有線程。
在這種情況下最好的線程實踐是什么? 我很困惑。 我應該使用System.Threading.Tasks.Task
類還是System.Threading.Thread
類進行多線程處理,還是應該使用其他任何技術? 哪個更適合我的要求,並為我提供更大的靈活性和穩定性?
我使用MAF進行了類似的操作,並使用外接程序監視文件服務器,數據庫和Web服務。 Windows服務會在每個外接程序中調用Start和Stop方法,從而啟用或禁用System.Timer.Timers。 實際處理是在每個計時器的經過的事件處理程序上完成的,該處理程序在池線程上運行。
其中一個插件監視用於進程間通信的數據庫表,這樣我就可以通過UI應用程序監視和控制其他插件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.