我有一個List(Of IWorker)
其中包含一些混凝土。 IWorker
依次具有Startup()
和Shutdown()
方法。協調工作者線程關閉
在Worker類中,Startup()
創建一個新的工作線程,然後返回。 Shutdown()
目前設置私人ShutDownRequested
標誌並返回。該標誌由工作者線程檢查(最壞每隔幾秒)。
這一切工作正常,但目前父應用程序無法確定工人是否已完成關閉。
我可以看到很多方法,但我不知道最好的是什麼。
- 將
State
財產添加到IWorker
。應該工作,但我會投票狀態,這似乎有點討厭。 - 使關閉命令阻止 - 可能是我的理想解決方案,但我不知道如何實現它 - 工作人員
Sunclock
私人對象Shutdown()
也應嘗試在設置標誌後的Synclock? - 還有別的嗎?
任何文章,意見或建議表示讚賞。 C#或VB中的例子很好。
這取決於你想要做什麼以及爲什麼。調用'Shutdown()'時你想阻塞嗎?你想顯示給用戶的狀態?還有別的嗎? – svick
@svick這是在控制檯應用程序中運行。目前,在調用啓動worker之後,控制檯每隔幾秒鐘循環一次,從worker讀取一些狀態信息並顯示它(處理的事件,使用的帶寬等)。當用戶按Enter鍵退出應用程序時,關機被髮送給每個工作人員。我只是想等到關機完成後,打印一個乾淨關機的確認信息,然後退出。如果應用程序沒有關閉並且工作人員退出,它將被回收並重新開始。 – Basic