Кто-нибудь знает, будет ли Task.WhenAny(IEnumerable<Task>)
работать должным образом, если элементы будут добавлены в list
после ожидания? ie:
class lunch {
private List<Task> lunchTasks = new List<Task>();
public void MakeLunch() {
Task makeSandwich = new Task();
Task eatSandwich = new Task();
makeSandwich.Delay(-1);
eatSandwich.Delay(-1);
lunchTasks.Add(makeSandwich);
lunchTasks.Add(eatSandwich);
await Task.WhenAny(lunchTasks).ConfigureAwait(false);
}
public void CleanUp() {
Task cleanUp = Task.CompletedTask;
lunchTasks.Add(cleanUp);
}
}
Если предположить, что CleanUp()
вызывается после MakeLunch()
асинхронно, MakeLunch()
когда-либо вернется / завершится?