|
C# async... await
|
|||
---|---|---|---|
#18+
refregВМоисеевПочему проходит это: Код: c# 1.
и не проходит это: Код: c# 1.
В точке await поток должен для явной асинхронности разделиться на два потока. Видимо, метод wsp.Entity_SP не является асинхронным, т.к. внутри нет вилки на два потока. И вилку приходится делать при помощи Task.Run() ЗЫ. В частном случае, метод может, решать, быть ему асинхронным, или не быть. Если метод решит, что операция не займет много времени, метод может не разделять потоки и выполняться в синхронном режиме.Асинхронный не значит многопоточный. Для явной асинхронности достаточно не ждать ответа от БД, а не делиться на два потока. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 08:59 |
|
C# async... await
|
|||
---|---|---|---|
#18+
>skyANA, сегодня, 08:59 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21054252] [21054252] >Асинхронный не значит многопоточный. Главным преимуществом await перед task.wait, по мнению разработчиков, является то, что в случае await оконная функция должна продолжать обработку очереди сообщений ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 09:18 |
|
C# async... await
|
|||
---|---|---|---|
#18+
hVosttТак всё верно, continuation выполняется на любом первом свободном потоке без восстановления контекста синхронизации, именно благодаря этому не будет дедлоков, если кто-то сделал где-то WaitСогласен, насчет дедлоков. Но я не об этом. Если не конфигурировать поток, и вызвать код из UI, то UI будет постоянно задействоваться, что приводит к торможению UI, вплоть до полного зависания. hVosttвнутри внешних методов топикастера UI поток не нужен, и да, ConfigureAwait(false) надо делать всегда и везде, кроме основного потока исполнения. неудобный синтаксис, лучше бы атрибут сделали или freeasync какой-нибудь ))Надо было сделать по умолчанию false. Было бы более логично... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 09:26 |
|
C# async... await
|
|||
---|---|---|---|
#18+
skyANAАсинхронный не значит многопоточный. Для явной асинхронности достаточно не ждать ответа от БД, а не делиться на два потока.Да асинхронный, не значит многопоточный. Но это не значит, что можно обойтись одним потоком для явной асинхронности. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 09:32 |
|
C# async... await
|
|||
---|---|---|---|
#18+
refregskyANAАсинхронный не значит многопоточный. Для явной асинхронности достаточно не ждать ответа от БД, а не делиться на два потока.Да асинхронный, не значит многопоточный. Но это не значит, что можно обойтись одним потоком для явной асинхронности.Да нет. Можно. К примеру Node.js однопоточный и явно асинхронный ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 09:35 |
|
C# async... await
|
|||
---|---|---|---|
#18+
refregЕсли не конфигурировать поток, и вызвать код из UI, Что значит из ГУИ? Технически это основной поток приложения. Мы же не про серверный процесс в трехзвенке тут обсуждам. Т.е. в контексте топика у меня или у ТС торможение? Не верю). ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 09:37 |
|
C# async... await
|
|||
---|---|---|---|
#18+
skyANArefregпропущено... Да асинхронный, не значит многопоточный. Но это не значит, что можно обойтись одним потоком для явной асинхронности.Да нет. Можно. К примеру Node.js однопоточный и явно асинхронный Мы говорим про С#, и сахар await ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 09:38 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеев>skyANA, сегодня, 08:59 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21054252] [21054252] >Асинхронный не значит многопоточный. Главным преимуществом await перед task.wait, по мнению разработчиков, является то, что в случае await оконная функция должна продолжать обработку очереди сообщенийУ Вас проблема в Вашем собственном коде. Мы Вам предлагали его переписать? Предлагали следовать принципам проектирования? Предлагали. Но Вы пошли по пути "я не следую догмам", вот теперь и обретаетогребаете. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 09:39 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеев>skyANA, сегодня, 08:59 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21054252] [21054252] >Асинхронный не значит многопоточный. Главным преимуществом await перед task.wait, по мнению разработчиков, является то, что в случае await оконная функция должна продолжать обработку очереди сообщений Да. Просто запомни что wait устарел. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 09:39 |
|
C# async... await
|
|||
---|---|---|---|
#18+
refregskyANAпропущено... Да нет. Можно. К примеру Node.js однопоточный и явно асинхронный Мы говорим про С#, и сахар awaitЕсли честно, то я вообще не понимаю о чём вы тут говорите. Мне кажется, что в ветке просто флуд. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 09:44 |
|
C# async... await
|
|||
---|---|---|---|
#18+
refregskyANAпропущено... Да нет. Можно. К примеру Node.js однопоточный и явно асинхронный Мы говорим про С#, и сахар await Да. Про мейнстрим и сахар)))))))) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 09:52 |
|
C# async... await
|
|||
---|---|---|---|
#18+
>skyANA, сегодня, 09:39 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21054353] [21054353] >У Вас проблема в Вашем собственном коде. Чушь. Надо же быть такими упертыми, почему же до Вас не дойдет, что то что Вы предлагали и предлагаете, по Вашим же понятиям, в моей ситуации - говнокод. Ведь ткнул же носом. Он не работает. Ваше предложение отправил на помойку - мой вариант, await Task.Run, работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 09:57 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеев>skyANA, сегодня, 09:39 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21054353] [21054353] >У Вас проблема в Вашем собственном коде. Чушь. Надо же быть такими упертыми, почему же до Вас не дойдет, что то что Вы предлагали и предлагаете, по Вашим же понятиям, в моей ситуации - говнокод. Ведь ткнул же носом. Он не работает. Ваше предложение отправил на помойку - мой вариант, await Task.Run, работает.Успокойтесь. Я в этом топике ничего ещё не предлагал. И не собираюсь. Разбираетесь сами с тем, что нагородили ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 10:05 |
|
C# async... await
|
|||
---|---|---|---|
#18+
refregЕсли не конфигурировать поток, и вызвать код из UI, то UI будет постоянно задействоваться, что приводит к торможению UI, вплоть до полного зависания. То, о чём ты говоришь, вообще не имеет отношения к асинхронности. Никакого от слова совсем. Если хочешь выполнять тяжёлую CPU Bound работу, не влияя на UI, ты должен запустить задачу background потоке руками. Асинк эту задачу не решает. refregНадо было сделать по умолчанию false. Было бы более логично... Ни в коем случае. Не логично ни разу :) false нужен только для писателей библиотек, а основная масса разрабов это прикладные разработчики. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 10:35 |
|
C# async... await
|
|||
---|---|---|---|
#18+
>skyANA, сегодня, 10:05 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21054408][21054408] >...Я в этом топике ничего ещё не предлагал... Прочтите внимательно и вдумчиво, что Вы написали здесь . Понимаю, что Вы имели ввиду это . Я честно и пунктуально переписал две системы в Вашем классическом варианте. Но что-то давило - решил проверить подсчет и вывод в ProgresBar время построения выборки при Вашем подходе - await без Task.Run. И вляпался. Долго рылся в инете и ничего не нашел. Вернулся к своему варианту - await Task.Run. Но какая-то недосказанность осталась, поэтому и обратился к коллегам с вопросом топика. >... "я не следую догмам"... Да это правда - я не раб лампы, - разрабатываю сам, и сам отвечаю за свою разработку. Если мне подходит догма - использую. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 12:23 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеевПонимаю, что Вы имели ввиду это . Вы там не догадались, что код обсуждают в топике программистов. Вы там смешали свой вопрос, строить ли веб и конкретный код на шарпе. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 12:29 |
|
C# async... await
|
|||
---|---|---|---|
#18+
А тут вы мешаете чтение ридером и обратный вызов в кавычах. Код: c# 1. 2. 3.
Осторожнее с обратным вызовом между потоками. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 12:36 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеев Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Так же пол года назад там говорилось, что вместо приклеивания where условий, Пишут and (param is null).... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 12:53 |
|
C# async... await
|
|||
---|---|---|---|
#18+
>Petro123, сегодня, 12:36 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21054899][21054899] >...Осторожнее с обратным вызовом между потоками Да не делаю этого ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 13:47 |
|
C# async... await
|
|||
---|---|---|---|
#18+
hVosttТо, о чём ты говоришь, вообще не имеет отношения к асинхронности. Никакого от слова совсем. А ты упорно какую то книгу пересказываешь о "асинхронном вводе-выводе" На код "асинхронности" sqlreadera Код: 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. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 13:51 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ViPRosА ты упорно какую то книгу пересказываешь о "асинхронном вводе-выводе" ты увидел, как какие-то таски запускаются в бэкргаунде в твоём куске кода? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 13:59 |
|
C# async... await
|
|||
---|---|---|---|
#18+
hVosttViPRosА ты упорно какую то книгу пересказываешь о "асинхронном вводе-выводе" ты увидел, как какие-то таски запускаются в бэкргаунде в твоём куске кода? :) В моем куске кода запускаются потоки и я их отслеживаю каждого и вижу что они делают. В бакгроунде у меня запускается воркер (этого для UI достаточно), а он генерирует параллельные потоки загрузки данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 14:14 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ViPRoshVosttпропущено... ты увидел, как какие-то таски запускаются в бэкргаунде в твоём куске кода? :) В моем куске кода запускаются потоки и я их отслеживаю каждого и вижу что они делают. В бакгроунде у меня запускается воркер (этого для UI достаточно), а он генерирует параллельные потоки загрузки данных. Они между прочим тоже из пула, потому по умолчанию бакгроунд. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 14:23 |
|
|
start [/forum/topic.php?fid=20&msg=39574230&tid=1399554]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
36ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
others: | 11ms |
total: | 139ms |
0 / 0 |