У меня есть следующий простой вопрос: почему метод async не ждет завершения параллельного цикла?Параллельный метод и асинхронный метод
public async Task<List<object>> DoSomeAsync()
{
// some async actions with streams and web requests
// ...
ConcurrentQueue<object> queue = new ConcurrentQueue<object>();
Parallel.For(1, x, async i =>
{
// a little chunk of code
// ...
queue.Enqueue(new object());
// ...
// a little chunk of code again
}
return queue.ToList(); // debugger says that this statement is executed earlier than parallel loop.
}
Знаете ли вы какие-либо идеи, как я могу ждать выполнения параллельного цикла?
Возможно, вам нужно 'await Parallel.For (...)' – Grundy
Параллельные циклы не могут быть ожидаемы, потому что они не возвращают экземпляр задачи. – vdrake6
Есть ли какой-нибудь метод 'awaitable' внутри цикла' Parallel.For'? – GeorgeChond