I have below code, which should wait 10seconds. Problem is that it completes immediately, the WhenAll
method is not working – what am I doing wrong here?
<code>public class WhenAllIsNotWorking
{
public async Task myFunc()
{
await Task.Delay(10000);
}
public async void Init()
{
var tasks = new List<Task>();
for (var i = 0; i < 10; i++)
{
tasks.Add(new Task(async () => { await myFunc(); }));
}
foreach (var task in tasks)
{
task.Start();
}
await Task.WhenAll(tasks);
}
}
</code>
<code>public class WhenAllIsNotWorking
{
public async Task myFunc()
{
await Task.Delay(10000);
}
public async void Init()
{
var tasks = new List<Task>();
for (var i = 0; i < 10; i++)
{
tasks.Add(new Task(async () => { await myFunc(); }));
}
foreach (var task in tasks)
{
task.Start();
}
await Task.WhenAll(tasks);
}
}
</code>
public class WhenAllIsNotWorking
{
public async Task myFunc()
{
await Task.Delay(10000);
}
public async void Init()
{
var tasks = new List<Task>();
for (var i = 0; i < 10; i++)
{
tasks.Add(new Task(async () => { await myFunc(); }));
}
foreach (var task in tasks)
{
task.Start();
}
await Task.WhenAll(tasks);
}
}
1