|
Зачем нужен await?
|
|||
---|---|---|---|
#18+
kealon(Ruslan)не выдумывайте, там обычный линейный код Да, там код. Это правда kealon(Ruslan)ожидание выполняет реализатор контракта IAsync<T> в частности с IO, для этого достаточно текущую нить отдать "планировщику" и переключиться на выполнение другой задачи. Вы не хотите разбираться как работает паттерн async/await, вообразили себе как он работает примитивным образом, окей. Спорить не буду, топик не об этом. Мне-то что хотите доказать? Я вопрос и проблемы в начале топика озвучил. Они не критичные, но с ними пришлось столкнуться. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2018, 15:07 |
|
Зачем нужен await?
|
|||
---|---|---|---|
#18+
Valery_BДля меня как раз наоборот - первый случай абсолютно очевиден, а второй - наоборот. Не понятно, что должна сделать эта процедура выполняя первый и второй оператор. И в каком потоке. Код: c# 1. 2. 3. 4. 5. 6. 7.
Это потому что вам это ещё пока не привычно. Посмотрите, что случилось, когда в Java ввели var , сколько воя и боли. Очевидно, что это упрощает написание и облегчает код, но некоторые сразу сказали, что им непонятно теперь какого типа переменные, var всё портит Здесь ситуация такая же. Мне достаточно, если асинхронные методы будут иметь суффикс Async, ну и IDE мог бы с лёгкостью подсвечивать асинхронные вызовы. Просто этого нет пока, надо вручную писать много await и это печалит. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2018, 15:11 |
|
Зачем нужен await?
|
|||
---|---|---|---|
#18+
hVosttМне-то что хотите доказать? Я вопрос и проблемы в начале топика озвучил. Они не критичные, но с ними пришлось столкнуться.вы совершенно не понимаете как это работает, хуже того - вы себе что-то насочиняли исходя из второго у вас и весь вопрос на дуболомный вопрос MasterZiv-а у вас нет ответа а конкретно если у вас везде await, то что-то с вашим кодом не так по вашему Код: c# 1. 2.
должен преобразоваться в Код: c# 1. 2.
ну-ну... ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2018, 15:46 |
|
Зачем нужен await?
|
|||
---|---|---|---|
#18+
kealon(Ruslan)по вашему Код: c# 1. 2.
должен преобразоваться в Код: c# 1. 2.
ну-ну... Если эти вызовы производятся из async-метода, то да, хотя бы один из этих двух вызовов должен быть с await, иначе сам метод будет выполняться синхронно (и это вполне логично). ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2018, 16:02 |
|
Зачем нужен await?
|
|||
---|---|---|---|
#18+
hVostt, че то ты где то не понял :( async await {censored} не нужны Модератор: Просьба подбирать слова покультурнее ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2018, 16:05 |
|
Зачем нужен await?
|
|||
---|---|---|---|
#18+
>hVostt, сегодня, 15:11 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1300144&msg=21621456] [21621456] >... Мне достаточно, если асинхронные методы будут иметь суффикс Async, ну и IDE мог бы с лёгкостью подсвечивать асинхронные вызовы. <На первый взгляд неплохо - меньше писанины. Но мне приходится писать и так: Код: c# 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2018, 16:12 |
|
Зачем нужен await?
|
|||
---|---|---|---|
#18+
>hVostt, сегодня, 15:11 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1300144&msg=21621456] [21621456] >... Мне достаточно, если асинхронные методы будут иметь суффикс Async, ну и IDE мог бы с лёгкостью подсвечивать асинхронные вызовы. <На первый взгляд неплохо - меньше писанины. Но мне приходится писать и так: Код: c# 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2018, 16:13 |
|
Зачем нужен await?
|
|||
---|---|---|---|
#18+
kealon(Ruslan)на дуболомный вопрос MasterZiv-а у вас нет ответа Если вы не разбираетесь в вопросе вместе с MasterZiv, в этом ничего плохого нет, не нужно вступать в полемику. kealon(Ruslan)а конкретно если у вас везде await, то что-то с вашим кодом не так по вашему Код: c# 1. 2.
должен преобразоваться в Код: c# 1. 2.
Мда. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2018, 16:19 |
|
Зачем нужен await?
|
|||
---|---|---|---|
#18+
ViPRoshVostt, че то ты где то не понял :( async await {censored} не нужны В контексте твоих проектов, не особо нужны. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2018, 16:20 |
|
Зачем нужен await?
|
|||
---|---|---|---|
#18+
ВМоисеев<На первый взгляд неплохо - меньше писанины. Но мне приходится писать и так: Код: c# 1. 2. 3. 4. 5.
Но это не асинхронный вызов. Это асинхронное ожидание, в этом случае блокируется отдельно выделенный поток для абсолютно синхронного выполнения i/o операции. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2018, 16:22 |
|
Зачем нужен await?
|
|||
---|---|---|---|
#18+
ВМоисеев<На первый взгляд неплохо - меньше писанины. Но мне приходится писать и так: Код: c# 1. 2. 3. 4. 5.
Компилятор мог бы для всех task-ов "докинуть" await, это не проблема... Проблема, если разработчику понадобиться более гибкая схема, например async ... Method() { task1.Start(); task2.Start(); await task1; } и где-то в другом месте task2.Wait(); ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2018, 16:39 |
|
Зачем нужен await?
|
|||
---|---|---|---|
#18+
LRЕсли эти вызовы производятся из async-метода, то да, хотя бы один из этих двух вызовов должен быть с await, иначе сам метод будет выполняться синхронно (и это вполне логично).нет (то что выдаются красивые варнинги - они не по этому поводу и ничего не меняют), просто потеряешь контроль над выполнением и без дополнительных танцев не узнаешь когда в действительности выполнятся оба метода. просто проверить не судьба я так понимаю ... ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2018, 16:53 |
|
Зачем нужен await?
|
|||
---|---|---|---|
#18+
kealon(Ruslan)LRЕсли эти вызовы производятся из async-метода, то да, хотя бы один из этих двух вызовов должен быть с await, иначе сам метод будет выполняться синхронно (и это вполне логично).нет (то что выдаются красивые варнинги - они не по этому поводу и ничего не меняют), просто потеряешь контроль над выполнением и без дополнительных танцев не узнаешь когда в действительности выполнятся оба метода. просто проверить не судьба я так понимаю ... Мдя)) Почитать документацию и узнать что такое async-методы не судьба, я так понимаю... https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/await An await expression does not block the thread on which it is executing. Instead, it causes the compiler to sign up the rest of the async method as a continuation on the awaited task. Control then returns to the caller of the async method. When the task completes, it invokes its continuation, and execution of the async method resumes where it left off. An await expression can occur only in the body of its enclosing method, lambda expression, or anonymous method, which must be marked with an async modifier. The term await serves as a keyword only in that context. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2018, 17:08 |
|
Зачем нужен await?
|
|||
---|---|---|---|
#18+
LR, Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48.
Код: plaintext 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2018, 17:15 |
|
Зачем нужен await?
|
|||
---|---|---|---|
#18+
LRМдя)) Почитать документацию и узнать что такое async-методы не судьба, я так понимаю... https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/await An await expression does not block the thread on which it is executing. Instead, it causes the compiler to sign up the rest of the async method as a continuation on the awaited task. Control then returns to the caller of the async method. When the task completes, it invokes its continuation, and execution of the async method resumes where it left off. An await expression can occur only in the body of its enclosing method, lambda expression, or anonymous method, which must be marked with an async modifier. The term await serves as a keyword only in that context. эта фраза никак не противоречит моим словам, просто понимаешь ты её неправильно ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2018, 17:17 |
|
Зачем нужен await?
|
|||
---|---|---|---|
#18+
kealon(Ruslan)занятно, да? Ничего занятного. Асинхронный метод здесь нужен лишь в одном месте, и, разумеется, с await. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38.
kealon(Ruslan)эта фраза никак не противоречит моим словам, просто понимаешь ты её неправильно Да уж, вижу))) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2018, 17:45 |
|
Зачем нужен await?
|
|||
---|---|---|---|
#18+
LRАсинхронный метод здесь нужен лишь в одном месте А, возможно, и не нужен вовсе... Смысл async-метода во фразе из приведенной цитаты: "When the task completes, it invokes its continuation, and execution of the async method resumes where it left off." Если никакого продолжения нет, или продолжение не использует результаты task-ов, то какой смысл городить async-метод? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2018, 17:58 |
|
Зачем нужен await?
|
|||
---|---|---|---|
#18+
>hVostt, сегодня, 16:22 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1300144&msg=21621776] [21621776] >Но это не асинхронный вызов. Это асинхронное ожидание,... <Называйте как хотите, но вторя Вам - асинхронный вызов мне нужен, чтобы I/O операции не блокировали UI поток. Иногда асинхронные операции с базой данных только называются асинхронными (суффикс Async присутствует), на самом деле метод выполняется синхронно. Используемая конструкция реализует асинхронность(параллельность) выполнения I/O. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2018, 18:07 |
|
Зачем нужен await?
|
|||
---|---|---|---|
#18+
LR, <я не знаю как ставится смайл когда по лбу себя бьёшь> ноLRЕсли никакого продолжения нет, или продолжение не использует результаты task-ов, то какой смысл городить async-метод? направление мыслей уже правильное глядишь уже сможешь понять 21619662 ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2018, 18:32 |
|
Зачем нужен await?
|
|||
---|---|---|---|
#18+
kealon(Ruslan) направление мыслей уже правильное глядишь уже сможешь понять 21619662 угу, читаем посыл MasterZivТебе вообще зачем __асинхронный__ вызов нужен? Наверное, чтобы он выполнялся параллельно с остальным кодом... А как оно будет выполняться параллельно, если ты тут же будешь ждать результат асинхнонного вызова? еще раз (а лучше два или три) перечитываем (эту гребаную) документацию https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/await An await expression does not block the thread on which it is executing... и думаем...думаем...думаем... ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2018, 19:28 |
|
Зачем нужен await?
|
|||
---|---|---|---|
#18+
LRМдя)) Почитать документацию и узнать что такое async-методы не судьба, я так понимаю...\ Судя по наивным и глупым мессаджам kealon(Ruslan) , это вообще тёмный лес. Я понимаю, даже не удосужился почитать, не имел дела, да и понятия не имеет о чём идёт речь, но своё однозначное мнение имеет ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2018, 19:31 |
|
Зачем нужен await?
|
|||
---|---|---|---|
#18+
kealon(Ruslan)глядишь уже сможешь понять 21619662 Там слишком глубокий вопрос. В C# все прозаически банально: async/await надо для отзывчивости гуя. Чтобы клик по кнопке не завесил прогу. По встрече await дальнейший код уходит в другой поток, освобождается поток обработки сообщений, тот принимает следующее сообщение виндовса и т.д. Плюсом await дает написать хорошо читаемый код, т.е. синтаксический сахар в чистом виде. В остальном от async/await пользы не много. Я консольные утилиты пишу, хотел поюзать async/await, но не придумал где, зато пришлось наоборот поискать как синхронно запустить xxxAsync(). ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2018, 19:35 |
|
Зачем нужен await?
|
|||
---|---|---|---|
#18+
ВМоисеевНазывайте как хотите, но вторя Вам - асинхронный вызов мне нужен, чтобы I/O операции не блокировали UI поток. Это можно сделать и без await. Это делали 10 лет назад в тех же винформсах. Поэтому это за рамками топика. ВМоисеевИспользуемая конструкция реализует асинхронность(параллельность) выполнения I/O. Нет, I/O здесь выполняется синхронно, в синхронном коде. Вы просто реализуете асинхронное ожидание результата. Но если так нравится, используйте ради бога, но это немного за рамками топике. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2018, 19:36 |
|
Зачем нужен await?
|
|||
---|---|---|---|
#18+
kealon(Ruslan)направление мыслей уже правильное глядишь уже сможешь понять 21619662 Вот эти глупости может прекратите копипастить? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2018, 19:36 |
|
Зачем нужен await?
|
|||
---|---|---|---|
#18+
Dima TТам слишком глубокий вопрос. В C# все прозаически банально: async/await надо для отзывчивости гуя. Чтобы клик по кнопке не завесил прогу. По встрече await дальнейший код уходит в другой поток, освобождается поток обработки сообщений, тот принимает следующее сообщение виндовса и т.д. Плюсом await дает написать хорошо читаемый код, т.е. синтаксический сахар в чистом виде. В остальном от async/await пользы не много. Я консольные утилиты пишу, хотел поюзать async/await, но не придумал где, зато пришлось наоборот поискать как синхронно запустить xxxAsync(). У вас что, патологическая неприязнь к литературе, к справочным материалам? Вы хотя бы почитайте на оф. сайте, я уж не говорю о какой-либо практике. Прозаически банально это в вашем воображении. Нет, async/await нужен вовсе не только для отзывчивости гуя, это прекрасно решали ещё 10 лет назад, существует как минимум 2 асинхронных API, до появления TAP. Но я сомневаюсь, что вы о них вообще слышали. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2018, 19:39 |
|
|
start [/forum/topic.php?fid=20&msg=39682210&tid=1399271]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
143ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 254ms |
0 / 0 |