Dot-Net

如何重新啟動/重用重複任務?

  • December 12, 2014

我有一個使用任務並行庫實現的長時間執行的任務。當任務啟動時,我會抓取幾個輸入值和集合的快照,然後使用該資訊執行各種操作。如果在任務執行時這些值或集合中的任何一個發生更改,我希望任務在完成後立即再次執行。我應該創建一個新任務還是有辦法重用現有任務?開始第二次迭代的最佳方式是什麼?

創建一個新任務。

正如http://msdn.microsoft.com/en-us/library/dd270682.aspx指出的那樣,不支持嘗試重新啟動正在執行或已完成的任務。做一些通常會引發異常的事情很少是一個好主意,而重用任務就是其中之一。

您無法重新開始現有的Task. 所以你有兩個選擇:

  1. 開始一個新的Task. 這可能更清潔。
  2. 在您的程序中執行一個循環Task,檢查自上次以來是否發生了變化,如果發生變化,則開始新的迭代。

引用自:https://stackoverflow.com/questions/9466212