每隔N分鐘,我們要運行一系列任務。因此,我們已經創建了一個任務執行與Thread.Sleep的替代方案()
do { DoWork(); }while(!stopRequested)
現在,我們希望有工作週期之間的停頓。每個人似乎都認爲Thread.Sleep()是魔鬼。我已經看到使用Monitor/Event的提及,但我們沒有其他人告訴我們去做工作。我們只是想每隔N分鐘就像發條一樣做東西。
那麼有沒有其他的選擇或我找到了Thread.Sleep的有效使用?
有人在另一篇文章中提到了WaitHandle.WaitOne()作爲替代方案,但你不能從非靜態方法顯然調用它?或者至少,我不能,因爲我得到一個編譯時錯誤..
需要 的對象引用非靜態字段,方法或 財產 「System.Threading.WaitHandle.WaitOne (System.TimeSpan)'
你認爲答案仍然有效嗎? – Cer 2017-03-30 11:40:37
@Cer:它應該仍然有效,當然。另一種方法是使用具有取消標記的任務。 – 2017-03-30 12:36:20