Сообщение Re[21]: Можно ли избавиться от async|await? от 16.12.2025 16:40
Изменено 16.12.2025 16:44 Serginio1
Re[21]: Можно ли избавиться от async|await?
Здравствуйте, ·, Вы писали:
S>>·>val1 := func1() // "асинхронный" вызов 1 (на самом деле, конечно же нет)
S>>·>val2 := func2() // "асинхронный" вызов 2 (на самом деле, конечно же нет)
S>> C# это Task.WhenAll
·>Зачем ты это мне рассказываешь, да ещё и фигню невтемную говоришь? В данном случае будет как-то так:
·>
·>И эти функции ДОЛЖНЫ быть объявлены как async и быть написаны правильно на всю глубину вызовов, протаскивая async повсюду. Сабж!
·>Это же полная Ж по сравнению с java.
Ну и чем это лучше
Task.WhenAll
А если мне нужно выполнение первой функции?
Чередование
Часто нужно сделать TimeOut
S>>·>val1 := func1() // "асинхронный" вызов 1 (на самом деле, конечно же нет)
S>>·>val2 := func2() // "асинхронный" вызов 2 (на самом деле, конечно же нет)
S>> C# это Task.WhenAll
·>Зачем ты это мне рассказываешь, да ещё и фигню невтемную говоришь? В данном случае будет как-то так:
·>
·>var r1 = func1();
·>var r2 = func2();
·>System.Console.WriteLine(r1) await(+ await(r2));
·>·>И эти функции ДОЛЖНЫ быть объявлены как async и быть написаны правильно на всю глубину вызовов, протаскивая async повсюду. Сабж!
·>Это же полная Ж по сравнению с java.
Ну и чем это лучше
Task.WhenAll
await Task.WhenAll(r1,r2);
System.Console.WriteLine(r1.Result+r2.Result);А если мне нужно выполнение первой функции?
Чередование
Часто нужно сделать TimeOut
int timeout = 1000;
var task = SomeOperationAsync();
if (await Task.WhenAny(task, Task.Delay(timeout)) == task) {
// task completed within timeout
} else {
// timeout logic
}Re[21]: Можно ли избавиться от async|await?
Здравствуйте, ·, Вы писали:
S>>·>val1 := func1() // "асинхронный" вызов 1 (на самом деле, конечно же нет)
S>>·>val2 := func2() // "асинхронный" вызов 2 (на самом деле, конечно же нет)
S>> C# это Task.WhenAll
·>Зачем ты это мне рассказываешь, да ещё и фигню невтемную говоришь? В данном случае будет как-то так:
·>
·>И эти функции ДОЛЖНЫ быть объявлены как async и быть написаны правильно на всю глубину вызовов, протаскивая async повсюду. Сабж!
·>Это же полная Ж по сравнению с java.
Ну и чем это лучше
Task.WhenAll
или
А если мне нужно выполнение первой функции?
Чередование
Часто нужно сделать TimeOut
S>>·>val1 := func1() // "асинхронный" вызов 1 (на самом деле, конечно же нет)
S>>·>val2 := func2() // "асинхронный" вызов 2 (на самом деле, конечно же нет)
S>> C# это Task.WhenAll
·>Зачем ты это мне рассказываешь, да ещё и фигню невтемную говоришь? В данном случае будет как-то так:
·>
·>var r1 = func1();
·>var r2 = func2();
·>System.Console.WriteLine(r1) await(+ await(r2));
·>·>И эти функции ДОЛЖНЫ быть объявлены как async и быть написаны правильно на всю глубину вызовов, протаскивая async повсюду. Сабж!
·>Это же полная Ж по сравнению с java.
Ну и чем это лучше
Task.WhenAll
await Task.WhenAll(r1,r2);
System.Console.WriteLine(r1.Result+r2.Result);или
var res = await Task.WhenAll(r1,r2);
System.Console.WriteLine(res[0]+res[1]);А если мне нужно выполнение первой функции?
Чередование
Часто нужно сделать TimeOut
int timeout = 1000;
var task = SomeOperationAsync();
if (await Task.WhenAny(task, Task.Delay(timeout)) == task) {
// task completed within timeout
} else {
// timeout logic
}