winform 用 await async復雜耗時查詢時,表單關閉, 執行緒如何關閉?
如果關閉了表單了, 執行緒仍在后臺運行, 如何可以關閉呢
uj5u.com熱心網友回復:
百度,cancelTokenSourceuj5u.com熱心網友回復:
await async不就卡在那邊了么,只能任務管理器里結束行程。uj5u.com熱心網友回復:
cancelTokenSource ,不是真正的取消
uj5u.com熱心網友回復:
WinForm 主表單關閉時,Application 行程會自動退出,該行程內的所有執行緒會終止(abort),這是作業系統內部的機制,應用程式無需關心。我們無法優雅地取消一個正在狂奔的執行緒,除非執行緒內部代碼可以隨時收到終止指令而做出相應的反應(例如 CancelTokenSource)。反倒是與資源相關的操作(磁盤、檔案、網路會話等)可能會有問題。舉例來說,后臺執行緒正在向 U 盤復制檔案,那么程式退出時可能檔案只復制了一半,處理不當就會留下一些垃圾資料。轉載請註明出處,本文鏈接:https://www.uj5u.com/net/195669.html
標籤:C#
