У меня есть некоторые проблемы с Task.Factory.StartNew и Task.WaitAll. Задачи начинаются так, как они должны, но похоже, что они просто игнорируют Task.WaitAll, потому что после нажатия на кнопку (это событие, в котором этот код находится) MessageBox уже всплывает.Task.Factory.StartNew игнорирует Task.WaitAll
List<Task> tasks = new List<Task>();
if (plugin.UseProxy)
{
foreach (var item in combo)
{
Task.Factory.StartNew(() =>
{
// Some code
}).ContinueWith((t) =>
{
tasks.Add(t);
pbProgress.Value++;
}, TaskScheduler.FromCurrentSynchronizationContext());
}
}
else
{
foreach (var item in combo)
{
Task.Factory.StartNew(() =>
{
// Some code
}).ContinueWith((t) =>
{
tasks.Add(t);
pbProgress.Value++;
}, TaskScheduler.FromCurrentSynchronizationContext());
}
}
Task.WaitAll(tasks.ToArray());
MessageBox.Show("Hello");
Потому что ваш список 'tasks' пуст в тот момент, когда вы выполняете' Task.WaitAll' – Fabio