ync/等待和背景工作者:了解差異
>> c#'s async
/await
和BackgroundWorker
兩個都處理背景任務以保持UIS響應。 但是,它們的方法和最佳用途場景有很大差異。 選擇合適的工具取決於任務的性質和您的編碼樣式。
背景工作者:專用的背景任務處理程序
在單獨的線程中執行單個,長期運行的操作時, BackgroundWorker
擅長執行。 它是需要通過其ProgressChanged
事件到主UI線程進行進度更新並提供取消任務的能力的情況的理想選擇。
異步/等待:優雅的異步編程
通過允許您以順序編寫異步操作來簡化異步代碼, Async
/await
簡化了異步代碼。 它本質上不會創建新線程;取而代之的是,它利用異步編程模式(例如基於任務的異步模式)(TAP)等異步編程模式。 這使得它更加清潔,更可讀,適用於許多異步任務。
>典型的用例:
>背景工作者最適合:
>>有異步圖案(如Tap)可用的情況。
方案涉及多個並發異步操作,維護執行順序。async
做出正確的選擇:await
等待:
>異步編程模式很容易適用於任務。 >
您需要暫停執行並等待多個同步操作。>您正在處理一項長期運行的任務,不想使用異步模式。 UI的進度更新至關重要。
>以上是異步/等待與背景工作者:我什麼時候應該將其用於背景任務?的詳細內容。更多資訊請關注PHP中文網其他相關文章!