using (Task t1 = Task.Factory.StartNew(() => { if (list.Count > 0) Console.WriteLine("Block begin"); for (int i = 0; i < 4; i++) { if (list.Count > 0) { var firstItem = list.FirstOrDefault(); // blah blah list.Remove(firstItem); } } bc.CompleteAdding(); } )) using (Task t2 = Task.Factory.StartNew(() => // blah blah)) Task.WaitAll(t1, t2); Console.WriteLine("Block end");
Block begin item 1 item 2 ... Block end
Block begin Block end item 1 item 2 ...
list
bc
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)