Я читаю книгу под названием Pro .NET 4 Parallel Programming in C# от Адама Фримана. В главе 2 на стр. 13 он говорит об использовании Task<int>
, чтобы вернуть результат, используя task1.Result
, чтобы дождаться его завершения. Я не понимаю, почему task2
должен дождаться task1
. Они находятся на разных потоках.C# .net 4 параллельное программирование
Это то, что, как показано ниже:
Task<int> task1 = new Task<int>(() => { ... ; return sum });
task1.Start();
Console.WriteLine("Result 1: {0}", task1.Result);
Task<int> task2 = new Task<int>(() => { ... ; return sum });
task2.Start();
Console.WriteLine("Result 2: {0}", task2.Result);
Если я перееду в следующую строку в нижней части, что кажется, как task1
все еще выполняет первый, независимо от того, сколько раз я пытался.
Console.WriteLine("Result 1: {0}", task1.Result);
Почему это происходит?
Спасибо за ваш ответ – Fei