Владислав
Если в десктопе все примерно очевидно, то на серверах никто не знает когда будет сборка
Stas
Ладно я спать, всем удачи
NIX
хаха, как сказал один тип - десктоп - это деградация
NIX
Владислав
Кстати да
Stas
асинхронный метод выполнится до первого await и вернёт управление, внутри самгоже метода будет всё выглядеть нормально, после того как закончится await он вернётся к своей СЛЕДУЮЩЕЕЙ строчке, именно это у тебя и было в твоём коде
Владислав
Если обобщенно - async методы не вычисляются и не возвращают результат. Он вернут задачу. Чтобы ее выполнить и получить ответ пишут оператор await. Именно после го вызова программа уходит в функцию. После ее выполнения будет возвращен результат и продолжится выполнение
Владислав
Ты можешь сделать так
Stas
в то время как место откуда ты вызвал асинхронный метод будет работать пока не закончится await, и упраление вернётся обратно в асинхронный метод
Владислав
Var t = doSomeStuffAsync();
Var res= await t;
Владислав
Если тебе надо выполнить ее синхронно task.await(t)
NIX
NIX
но мой код не работал
NIX
я так и не понял почему
Владислав
Ну тут я мало чем помогу
NIX
я возвращал управление только после асинхронного метода,
Stas
кому ты его возвращал?
NIX
в то время как этот асинхронный метод возвращал управление раньше
Stas
ты вызывал await внутри Main
NIX
ну да
Stas
кому Main возвращал своё управление?
NIX
погодика
Stas
))
NIX
а как так?
Stas
А вот когда в Main ты вызвал метод внутри которго await, вот тот и вернул управление Main
NIX
Вчера мне компилятор писал, что необходимо добавить await перед методом внутри main, иначе он будет синхронным
Stas
Да потомучто ему без раницы
NIX
он е мне сам предложил так исправить
NIX
написать await
Stas
Ты сам неправильно разветвил код и ждал асинхронности там где её впринципе быть не могло
NIX
потом я нарвался на это
https://docs.microsoft.com/ru-ru/dotnet/csharp/programming-guide/concepts/async/index
NIX
тут он тоже это делает
NIX
почему?
Владислав
Владислав
Последний Шарп так может
NIX
NIX
я из-за него новую студию качал
Владислав
Он за тебя делает такое
Async task MainAsync(){}
P static void main()
{
MainStatic().Wait();
}
Владислав
Не
Владислав
Ну
Владислав
Да
Владислав
Ты же не ожидал
NIX
пришлось удалить половину своей любимой порнухи
NIX
надо было скомпилировать сначала
Владислав
Так в коде вс еправильнг
NIX
а я видимо забыл
NIX
сидел часов до 3, думал
NIX
я вообще удалил аваиты из маин
NIX
Stas
бля, да не пойдёт код дальше await пока тот не выполнится, код надо РАЗВЕТВИТЬ!
Владислав
Или
NIX
Владислав
Как ты уже написал
Владислав
Но
Stas
Владислав
List<task>
NIX
нет, так всё и должно работать
NIX
меня устраивает
Владислав
Туда добавлять твои dostuff()
Владислав
Такски
Владислав
А потом
Владислав
Task.waitall()
Владислав
После цикла
NIX
я прекрасно понимаю что внутри цикла маин будет ожидание всего цикла
Владислав
Результат будет тот же
NIX
я специально это сделал
Владислав
Только асинхронно
Владислав
И понятно где все завершится
Владислав
Хз)
Владислав
Нет
Владислав
Не будет
Владислав
Если ты не await
Владислав
То у тебя они запустятся
NIX
я просто о том, что методы подключения к сайту работают тоже поочерёдно
Владислав
И сразу же закончится программа
Stas
Ладно, я думаю разобрались, всем спокойной ночи
Владислав
Я тоже пойду
Владислав
До завтра
NIX
это значит что где-то в dllках тоже асинхронные методы есть)
NIX
Спасибо, друзья!