Parallel.For<string>(0, 20,() =>
{
// invoked once for each thread
Console.WriteLine("init thread {0}, task {1}", Thread.CurrentThread.ManagedThreadId, Task.CurrentId);
return String.Format("t{0}",
Thread.CurrentThread.ManagedThreadId);
}, (i, pls, str1) =>
{
// invoked for each member
Console.WriteLine("body i {0} str1 {1} thread {2} task {3}", i, str1,
Thread.CurrentThread.ManagedThreadId, Task.CurrentId);
Thread.Sleep(10);
return String.Format("i {0}", i);
}, (str1) =>
{
// final action on each thread
Console.WriteLine("finally {0}", str1);
});
Я получил этот код из книги "Professional C# 5.0 и .NET 4.5.1", и книга показывает результат на странице 560:Является ли результат неправильным для Parallel.For <string> в C# 5.0 ниже?
Я думаю, что результат, когда я вокруг он с красным перетяжком может быть неправильным, он должен быть «body i 1 str1 t1 thread 1 task 1», я понимаю, что это правильно? или я был неправ. Кто-нибудь может объяснить это мне? спасибо