А в разделе об окне параллельных задач при достижении третьей точки останова четко говорится:
Обратите внимание, что в этом примере выполнения задача 11 и задача 12 выполняются в одном и том же потоке (покажите столбец «Назначение потока», если он скрыт).
Окно «Задачи»
В «Окне задач» мы видим, что задача 11 «Заблокирована», а задача 12 — «Активна».
Если мы перейдем к задаче 11 location, который является методом «O», мы видим, что он заблокирован в строке t5.Wait();
Код: Выделить всё
static void O(object o)
{
Task t5 = Task.Factory.StartNew(P, TaskCreationOptions.AttachedToParent);
t5.Wait(); // tasks 11 blocked here
R(o);
}
Я отлаживал это пошаговое руководство несколько раз, и мне удалось повторить одно и то же поведение только один раз случайным образом. В других случаях я видел, как мне казалось, правильное поведение, когда задача с методом «P» всегда выполняется в другом потоке.
Локальная отладка окна задач
Я думал, когда поток вызывает задачу Метод «Подождите», поток блокируется до завершения задач?
Что я здесь пропустил?
Подробнее здесь: https://stackoverflow.com/questions/764 ... ltaneously
Мобильная версия