0
我正在使用並行任務讀取一些文件。在此操作期間,如果我取消任務,文件句柄不會關閉。任務被成功取消。看起來我需要做更多的事情來在取消期間關閉文件句柄,但無法弄清楚我需要做什麼。我假設任務取消將處置所有對象,但不是這種情況。 任何幫助,非常感謝。任務並行庫文件句柄
我正在使用並行任務讀取一些文件。在此操作期間,如果我取消任務,文件句柄不會關閉。任務被成功取消。看起來我需要做更多的事情來在取消期間關閉文件句柄,但無法弄清楚我需要做什麼。我假設任務取消將處置所有對象,但不是這種情況。 任何幫助,非常感謝。任務並行庫文件句柄
取消任務不會處理任何事情。我並不知道你是如何取消或開始你的Task
,因爲你沒有顯示任何代碼,但推薦的方法是調用Cancel()
任務CancellationTokenSource
的方法。當你的任務正在做它應該做的事時,它應該檢查令牌屬性IsCancellationRequested
。 This post解釋程序相當不錯。
清理完全取決於你。垃圾回收器會殺死普通對象,但是你需要調用Dispose
,Close
或者等價於你正在使用的任何昂貴的對象。
你有幾個選擇,手動調用Dispose
,使用using
塊或實現某種形式的工作單元模式。
我認爲更好的方法來測試取消是調用['ThrowIfCancellationRequested()'](http://msdn.microsoft.com/en-us/library/system.threading.cancellationtoken.throwifcancellationrequested),大多數時間。 – svick