[英]How to send the progress when using Parallel.ForEach
我打算在DataTable上使用Parallel.ForEach,以便可以將每條記錄寫入文件。
我們如何通知用戶處理的記錄的百分比/數量。
通常,當我們使用Background worker時,我們會有一個ProgressChanged事件,用戶會收到完成工作百分比的通知。 我們如何使用Parallel.ForEach或Multiple任務實現這一目標?
謝謝,兔子
我有類似的問題。 我們要解決的問題是在所有線程和UI都可見的數字上使用Interlocked.Increment
,並根據該數字顯示進度條。
編輯:請注意,如果您的計數器很long
您將需要使用Interlocked.Read
來閱讀它。 如果你使用int,那么進程已經是原子的。
您將需要一個從0開始的(共享)計數器,並在每個部分的末尾增加(使用Interlocked)。
然后你需要
當迭代次數很多時,選項2)更容易,效率更高。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.