Я немного запутался, когда дело доходит до асинхронных / ожидающих вещей. NET ...
Рассмотрим следующий метод:
public async Task DoSomething() {
IEnumerable<Task> ts = GetSomeTasks(); // Some tasks that would do some random IO stuff, or whatever
await Task.WhenAll(ts);
Console.WriteLine("All tasks completed!");
}
Это вызов Console.WriteLine
гарантированно будет выполнено после того, как задачи в ts
ожидаются? Я думаю, что видел случаи, когда await, похоже, не «блокировался» таким образом, пока не был достигнут результат задачи. Какие правила применяются?