The following code produces an event log of 14, 15, 16, 16 when I expect 13, 14, 15, 16, i.e. each number to be written to event log once, regardless of order.
The question is why is it missing 13 and duplicating 16?
List<int> webReports = new List<int>{13,14,15,16};
List<Task> tasks = new List<Task>();
foreach (int webReportNo in webReports)
{
tasks.Add(Task.Factory.StartNew(() => DoStuff(webReportNo)));
}
private static void DoStuff(int webReportNo)
{
//Write webReportNo to event log.
}