Сообщение Re[5]: [Этюд] - синхронный vs асинхронный от 29.09.2021 10:27
Изменено 29.09.2021 10:33 Serginio1
Re[5]: [Этюд] - синхронный vs асинхронный
Здравствуйте, Shmj, Вы писали:
S>Попробуйте убрать LongRunning — без него и первый вариант начнет тормозить.
То есть такой код тоже тормозит?
Тогда у тебя будет ожидаться одна задача. По сути то ты хочешь выполнить все задачи без ожидания выполнения других. Убери await
S>Попробуйте убрать LongRunning — без него и первый вариант начнет тормозить.
То есть такой код тоже тормозит?
static async Task Main(string[] args)
{
for (int i = 0; i < 1000; i++)
{
int iCopy = i;
await AsyncMethod(iCopy);
}
Console.ReadKey();
}
Тогда у тебя будет ожидаться одна задача. По сути то ты хочешь выполнить все задачи без ожидания выполнения других. Убери await
static async Task Main(string[] args)
{
Task[] tasks=new Task[1000];
for (int i = 0; i < 1000; i++)
{
int iCopy = i;
tasks[i]=AsyncMethod(iCopy);
}
Task.WhenAll(tasks);
Console.ReadKey();
}
Re[5]: [Этюд] - синхронный vs асинхронный
Здравствуйте, Shmj, Вы писали:
S>Попробуйте убрать LongRunning — без него и первый вариант начнет тормозить.
То есть такой код тоже тормозит?
Тогда у тебя будет ожидаться одна задача. По сути то ты хочешь выполнить все задачи без ожидания выполнения других. Убери await
S>Попробуйте убрать LongRunning — без него и первый вариант начнет тормозить.
То есть такой код тоже тормозит?
static async Task Main(string[] args)
{
for (int i = 0; i < 1000; i++)
{
int iCopy = i;
await AsyncMethod(iCopy);
}
Console.ReadKey();
}
Тогда у тебя будет ожидаться одна задача. По сути то ты хочешь выполнить все задачи без ожидания выполнения других. Убери await
static async Task Main(string[] args)
{
Task[] tasks=new Task[1000];
for (int i = 0; i < 1000; i++)
{
int iCopy = i;
tasks[i]=AsyncMethod(iCopy);
}
await Task.WhenAll(tasks);
Console.ReadKey();
}