最近决定编写一个“快速”的 Windows 窗体应用程序来标记我的 MP3 文件。自 .Net 3.0 以来没有对并行性做任何事情,所以我正在研究 Parallel.ForEach 方法来处理我在使用标准 foreach 语句时得到的 UI 锁定。这是一段摘录:
var i = 1;
var files = new List<string>(); // File list is populated using recursive method.
foreach(var f in files) {
// Add a row
var row = dgvList.Rows[dgvList.Rows.Add()];
// Update label
lblSummary.Text = string.Concat("Processing... ", i);
// Do things with row
// Increment progress bar
progressBar.PerformStep();
i++;
}
我已经弄清楚了 Parallel.ForEach() 的简单用法,但我不确定我是否应该使用该特定方法来更新 UI?有什么建议么?