對不起,如果這是一個愚蠢的問題。我對wait()
及其變體在任務並行庫方面感到困惑。總是等待任務完成是否是一種好習慣?
我見過的每一個例子都等待完成任務 - 這是否被認爲是良好的做法?
我的情況是,我正在開發一個將持續運行的Windows服務。我想參與一些任務,但我不在乎他們是否會跑完成 - 我會設置一個有效期的取消標記,如果出現錯誤,這會導致錯誤。所以我沒有看到需要等待完成,但是每個例子都使用它...
對不起,如果這是一個愚蠢的問題。我對wait()
及其變體在任務並行庫方面感到困惑。總是等待任務完成是否是一種好習慣?
我見過的每一個例子都等待完成任務 - 這是否被認爲是良好的做法?
我的情況是,我正在開發一個將持續運行的Windows服務。我想參與一些任務,但我不在乎他們是否會跑完成 - 我會設置一個有效期的取消標記,如果出現錯誤,這會導致錯誤。所以我沒有看到需要等待完成,但是每個例子都使用它...
這真的取決於你的情況需要什麼。例如,如果你想啓動一個子程序來執行一個程序,例如說,並行發送一封電子郵件,你可以不用等待。
但是,如果您需要行動什麼樣的結果或結構受某些行爲的影響,您將需要等待。
如果你的任務是獨立的,不互相影響和/或彼此依賴,那麼我不明白你爲什麼需要等待。
如果正在等待的代碼需要輸出任務才能繼續執行,則只需要等待任務。如果你不需要那個輸出,不要等待。
我希望我能分享這個答案的榮譽,因爲它們都令我滿意。我實際上畫了一個文字稻草來選擇要標記的那個。非常感謝您的回答。 –
1.查看'wait()'在文檔中做了什麼2.「我需要這個嗎?」 3.是 - >使用它,不 - >不使用它 –
您是否在意每個任務可能拋出的異常,以及它們如何傳播?它可能無法按照您的預期工作:http://stackoverflow.com/a/22395161/1768303 – Noseratio
@TimCastelijns我可以 - 也有 - 研究過文檔。然而我仍然感到困惑 - 因此,這個問題。我顯然不像你那樣能夠勝任,但請考慮這個論壇被許多不同的人使用的觀點,有些人 - 比如我自己 - 的能力不如別人。 –