|
C# async... await
|
|||
---|---|---|---|
#18+
>ВМоисеев, очепятка - в случае await без Task.Run ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 18:22 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеев>ВМоисеев, очепятка - в случае await без Task.Run ну тебе с первого дня про то и говорили, что бы пользовался асинхронными методами ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 18:31 |
|
C# async... await
|
|||
---|---|---|---|
#18+
Теперь смотрим на исходный код и дивимся, а паттерн то знакомый!!! Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 18:38 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеев>Petro123, сегодня, 17:55 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21053109][21053094] >Если есть асинхронный метод в драйвере... Использую провайдер Devart dotConnect for Oracle, здесь есть. Похоже и для Posgre тоже Ну, если будут ошибки и захочешь Все завернуть без асинк в дровах - заходи))). У меня await + task.run + лябда вместе с коннектами. Работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 18:38 |
|
C# async... await
|
|||
---|---|---|---|
#18+
>refreg, сегодня, 18:19 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21053164][21053164] >Обрати внимание, что тут 3 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. 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. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 18:41 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеев Код: c# 1.
У тебя там к ГУИ нет вызовов? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 18:44 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеев Код: c# 1.
Попробуй везде (в библиотечном коде, в котором точно нет UI) заменить на Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 18:50 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеев, Ты раньше в ветке Оракла пел что у тебя временные таблицы в хранимке и тормозит. Тут зачем асинхронность? Сколько в цифрах? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 18:54 |
|
C# async... await
|
|||
---|---|---|---|
#18+
refreg Код: c# 1.
это ничего не изменит, хотя может спасти от дедлоков в некоторых случаях и работать будет по-быстрее, так как не будет восстанавливаться контекст в continuation ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 18:56 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеев, рекомендую ознакомиться вот этой статьёй https://stephenhaunts.com/2014/10/14/using-async-and-await-to-update-the-ui-thread/ ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 18:57 |
|
C# async... await
|
|||
---|---|---|---|
#18+
hVostt, Посмотрел. У меня не выйдет вариант с асинхронными дровами методами. У меня ГИС. 100 слоев карты это 100 сущностей хибернейт. Читает из базы адаптер 15сек. И далее в оперативке строится слой 2мин. Поэтому я завернул Весь код в поток. for layer .....count{ NewLayerAsync(... } Где и сколько тормозит у автора хз. Он идет на 100 страниц. Либо обучается)). ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 19:25 |
|
C# async... await
|
|||
---|---|---|---|
#18+
Petro123, ну вообще для десткопа не так уж критично экономить на потоках ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 19:37 |
|
C# async... await
|
|||
---|---|---|---|
#18+
hVostt, Тут пул экономит. Я ему 100 раз task.run лямбда, а он более 20 не апускает))). Меня устраивает. Словари пришлось поменять на потокозащищенные. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 19:44 |
|
C# async... await
|
|||
---|---|---|---|
#18+
>Petro123, сегодня, 19:25 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21053348] [21053348] >...У меня ГИС. 100 слоев карты ... Хоть и не по теме, но интересно - это Вы о чем? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 19:46 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеев>Petro123, сегодня, 19:25 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21053348] [21053348] >...У меня ГИС. 100 слоев карты ... Хоть и не по теме, но интересно - это Вы о чем? Проект на работе. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 19:57 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеев, Ты сам то когда про свой уточнять будешь? Или закрывай тему. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 19:59 |
|
C# async... await
|
|||
---|---|---|---|
#18+
>ВМоисеев, сегодня, 18:41 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21053225][21053225] Раньше не мог аккуратно тестировать хранимую процедуру Oracle - не знал как реализовать задержку. Спасибо коллеге за процедуру: -- Задержка Код: plsql 1. 2. 3.
Теперь могу тестировать и так: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 23:55 |
|
C# async... await
|
|||
---|---|---|---|
#18+
hVosttrefreg Код: c# 1.
это ничего не изменит, хотя может спасти от дедлоков в некоторых случаях и работать будет по-быстрее, так как не будет восстанавливаться контекст в continuation Смотри, что я имел ввиду (добрался, до компа написать тестовую хрень): Код: 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.
В случае, Method, вывод такой: Код: plaintext 1. 2. 3. 4. 5.
В случае Method2, такой: Код: plaintext 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 00:18 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеев, - LIKE убрать - склейку строк через || убрать Проверить эффект через план выполнения. Удивится тому, что может асинхронность и не нужна. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 07:20 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеевЗадержка Нужно еще в нужное место ставить задержку. Видел у меня выше тормоз был не в бд а в оперативке в БЛ. ... А в бд еще эффективнее ГЕНЕРАЦИЯ тестовых данных в табличках. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 07:25 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ЗЫ.. Я удивляюсь, зачем для select вообще хранимка? В шарпе нет АппСервера? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 07:28 |
|
C# async... await
|
|||
---|---|---|---|
#18+
refregВМоисеев Код: c# 1.
Попробуй везде (в библиотечном коде, в котором точно нет UI) заменить на Код: c# 1.
вроде тут обычный прикладной код. Где должен быть лаконизм и минимум технического кода. Значит это лишнее. Не? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 07:47 |
|
C# async... await
|
|||
---|---|---|---|
#18+
refregВ случае, Method, вывод такой: Код: plaintext 1. 2. 3. 4. 5.
Код: plaintext 1. 2. 3. 4. 5.
Так всё верно, continuation выполняется на любом первом свободном потоке без восстановления контекста синхронизации, именно благодаря этому не будет дедлоков, если кто-то сделал где-то Wait ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 08:24 |
|
C# async... await
|
|||
---|---|---|---|
#18+
refreg, внутри внешних методов топикастера UI поток не нужен, и да, ConfigureAwait(false) надо делать всегда и везде, кроме основного потока исполнения. неудобный синтаксис, лучше бы атрибут сделали или freeasync какой-нибудь )) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 08:26 |
|
C# async... await
|
|||
---|---|---|---|
#18+
hVosttименно благодаря этому не будет дедлоков, если кто-то сделал где-то Wait Вот оно что. Вы все про костыли к старому коду? Тогда проехали. Ни мне, ни ТС это не надо. У нас Wait нету в старом коде. А до ГУИ очень близко. Могу вызвать след.строкой после await. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 08:58 |
|
|
start [/forum/topic.php?fid=20&msg=39573978&tid=1399554]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
61ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
71ms |
get tp. blocked users: |
1ms |
others: | 332ms |
total: | 509ms |
0 / 0 |