Я не знаю, почему вы не можете использовать Task, я предполагаю, что вы вызываете его в методе Main или как-то еще.Итак, я выйду из этого.
Как сказал Мартин Уллрих, я бы изменил метод DoSomethingAsync
для возврата задачи:
private async static Task DoSomethingAsync(int i)
{
...
}
Затем создайте новый метод, который выполняет цикл, добавивметоды для List<Task>
:
private static async void PerformLoop()
{
Stopwatch timer = new Stopwatch();
timer.Start();
List<Task> l = new List<Task>();
for (int i = 0; i < 50; i++)
{
l.Add(DoSomethingAsync(i));
}
await Task.WhenAll(l);
timer.Stop();
Console.WriteLine(timer.Elapsed.TotalSeconds);
}
Теперь, откуда вы делали цикл раньше, в этом случае метод Main
просто добавляет туда новый вызов метода:
static void Main(string[] args)
{
PerformLoop();
Console.ReadLine();
}