【发布时间】:2014-06-04 13:41:29
【问题描述】:
我有这个代码sn-p:
int totalData = result.Data.Count;
int count = 0;
Parallel.ForEach(result.Data, data =>
{
try
{
EventRange importedEntity = ImportEntity(auxResult.EntityName, data);
count++;
EntityImported(importedEntity, count, totalData);
}
catch (Exception e)
{
exceptions.Enqueue(e);
}
});
EntityImported 是一个事件,它应该说明已经处理了多少实体,以及我应该处理多少实体。我担心在 lambda 中递增计数的线程安全性,以及您建议采取哪些步骤来确保始终使用正确的计数变量值触发事件。
【问题讨论】:
标签: c# multithreading thread-safety task-parallel-library parallel.foreach