我無法弄清楚如何處理這個問題的最佳方式。Windows服務線程內的計時器
現在我有一個windows服務,只有任務是從具有特定DSN的數據庫中收集數據,然後在數據有效時發送電子郵件。該服務包含一個計時器,每5分鐘打一個計時器並執行上述任務。
現在我需要重新編寫Windows服務,以便能夠在多個DSN上運行。 我正在考慮在windows服務中創建多個線程,然後在每個線程中再次有一個seperat計時器。 這是一個好主意,如何做到這一點?我想避免爲每個DSN提供一個Windows服務。
生病嘗試繪製它,如果我不作任何意義
Windows Service
線程1(DSN1)------------------------ -----線程2(DSN2)----------------------線程3(DSN3)
計時器(每X分鐘) -----------定時器(相同)-------------------------定時器(相同)
邏輯() - - - - - - - - - - - - - - - - - - - - - - - 邏輯 - - - ---------------------------- Logic()
希望我的問題有道理:)
根據@jrb,您可以使用BackGroundWorker代替定時器 –
+1。在這種情況下,即使擁有一些普通的線程也是毫無意義的。到底是什麼?讓他們等待?計時器根據需要獲取線程。 – TomTom
感謝您的反饋,沒有意識到一個計時器代表一個線程本身。所以我可以完全忽略螺紋部分?背景工作者也使用線程,爲什麼我會使用它?我遇到的另一個問題是如何關閉線程,當我停止我的服務,但如果我不需要線程,但只有計時器,這不重要了嗎? – Thomas