Я пишу фрагмент кода, который запускает несколько задач, и в конце мне нужно дождаться завершения задачи, чтобы двигаться вперед.
Пример кода -
var taskToWaitOn = Task.Factory.StartNew(Method1);
Task.Factory.StartNew(Method2);
Task.Factory.StartNew(Method3);
taskToWaitOn.Wait();
Здесь, если я жду taskToWaitOn
Я фактически блокирую поток и, следовательно, в 4-потоковом процессоре я теряю 25% вычислительной мощности.
Есть ли способ, с помощью которого я могу ожидать выполнения этой задачи в асинхронном режиме, когда поток фактически не блокируется при ожидании и может свободно обрабатывать другую логику.