|
C# async... await
|
|||
---|---|---|---|
#18+
Коллеги, помогите разобраться. Разрабатываю приложения работы с базой данных Oracle. Запросы могут быть долгоиграющими, поэтому на время его выполнения подключаю таймер и отражаю время в прогресс баре. - Ситуация 1: здесь и далее - await wsp.Entity_SP(ИмяХП, sp, asp, RowToEntity);- вызов хранимой процедуры Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
======= ПрогрессБар не работает. - Ситуация 2: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
======= ПрогрессБар штатно. Дискуссия состоялась здесь ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2017, 19:41 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеев, дружище, ты и сам можешь половину работы сделать. Прогресс не работает когда нет потока. Включаем отладку и идём по шагам по строчкам. Если есть поток, то всё нормально. Если нет, то пишем сюда и смотрим где ты его стартовать должен. Окно потоков: Debug - Window - ... ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2017, 20:38 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеев, ну и можно сделать круче - не включать прогрессбар, пусть хранимка в фоне работает. Сделает - доложит). РазДисаблишь контрол какой нить. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2017, 20:42 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеев Код: c# 1.
это что, извините, за лютейший пздц? какой асинк-эвейт здесь? боржоми водкой запивай, чтобы не било по печени! и это ещё что. прогресс бар на выполнение запросов? wat?! мдахх... ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2017, 20:53 |
|
C# async... await
|
|||
---|---|---|---|
#18+
hVosttи это ещё что. прогресс баресли помнишь, он у него бесконечный туда-сюда). хо-зя́-ин — ба́-рин. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2017, 21:05 |
|
C# async... await
|
|||
---|---|---|---|
#18+
>hVostt, сегодня, 20:53 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21046939] [21046939] >это что, извините, за лютейший пздц? это здесь . >и это ещё что. прогресс бар на выполнение запросов? wat?! мдахх... на слайде, в низу окна, зеленая полоска. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2017, 22:42 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеевна слайде, в низу окна, зеленая полоска. ну, тогда нормально по дизайну. С остальным то что? Основной вопрос не прогрессе ведь был. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2017, 23:00 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеевэто здесь . никакой работы в вашем таске не выполняется, только синхронное ожидание выполнения запроса в отдельно выделенном потоке. хотя в том треде об этом неоднократно говорилось. наверное какие-то проблемы с усвоением информации. ВМоисеевна слайде, в низу окна, зеленая полоска. по какому принципу "зелёная полоска" заполняется? по коду вы не получаете информации о прогрессе. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2017, 23:15 |
|
C# async... await
|
|||
---|---|---|---|
#18+
hVosttнаверное какие-то проблемы с усвоением информации дипломат)) hVosttпо какому принципу "зелёная полоска" заполняется? по коду вы не получаете информации о прогрессе. Иван Иваныч! Бесконечный прогрессбар когда чем ближе к концу тем медленнее. (предположение) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2017, 23:36 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеев>hVostt, сегодня, 20:53 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21046939] [21046939] >это что, извините, за лютейший пздц? это здесь . >и это ещё что. прогресс бар на выполнение запросов? wat?! мдахх... на слайде, в низу окна, зеленая полоска. надо прогресс сверху, тогда хорошо показывается :) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2017, 23:41 |
|
C# async... await
|
|||
---|---|---|---|
#18+
>hVostt, сегодня, 23:15 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21047202] [21047202] >никакой работы в вашем таске не выполняется... Вы не правы: Код: 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.
>по какому принципу "зелёная полоска" заполняется? по коду вы не получаете информации о прогрессе. Практически определяется некий максимальный интервал выполнения самого длинного запроса для конкретного компьютера сети + гак и эта величина входит а настройки конкретного компа. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2017, 23:43 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеев, и где же этот код? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2017, 23:44 |
|
C# async... await
|
|||
---|---|---|---|
#18+
>ViPRos, сегодня, 23:41 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21047240][21047240] >надо прогресс сверху, тогда хорошо показывается :) Спасибо, завтра попробую ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2017, 23:47 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ViPRos, по тику что ли? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2017, 23:47 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеев, ээ, ты чего? я первый раз себе позволил пошутить await нифига не делает в первом случае ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2017, 23:49 |
|
C# async... await
|
|||
---|---|---|---|
#18+
да и во втором тоже делай через бакгроундворкер ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2017, 23:51 |
|
C# async... await
|
|||
---|---|---|---|
#18+
>ViPRos, сегодня, 23:44 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21047245] [21047245] >и где же этот код? Вы об этом? Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
где: pgbWin - ПрогрессБар iPgbFrm - счетчик секунд гп.tm_Запрос - максимальная величина ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2017, 23:55 |
|
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. 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. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2017, 23:58 |
|
C# async... await
|
|||
---|---|---|---|
#18+
>ViPRos, сегодня, 23:51 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21047260][21047260] >...делай через бакгроундворкер Это уже проходил. Я получил то, что мне надо, но не знаю почему. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2017, 23:59 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеев, второй вариант просто работает другой поток, потому рисует основной поток ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 00:00 |
|
C# async... await
|
|||
---|---|---|---|
#18+
>ViPRos, сегодня, 00:00 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21047280][21047280] >второй вариант просто работает другой поток, потому рисует основной поток Меня смутило, что это не работает: Код: c# 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 00:09 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеев>ViPRos, сегодня, 00:00 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21047280][21047280] >второй вариант просто работает другой поток, потому рисует основной поток Меня смутило, что это не работает: Код: c# 1. 2.
ты же это скопировал отсюда? почему н еработает Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 00:30 |
|
C# async... await
|
|||
---|---|---|---|
#18+
что бы твой метод был асинхронной и использовать await и т.д. надо что бы он был типа этого !!!TaskCompletionSource!!! Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 00:40 |
|
C# async... await
|
|||
---|---|---|---|
#18+
вот нашел для тебя хороший учебник На этот случай предусмотрен класс TaskCompletionSource<T>, позволяющий создать задачу Task, которой вы управляете как марионеткой. Вы можете в любой момент сделать эту задачу успешно завершившейся. Или записать в нее исключение и тем самым сказать, что она завершилась с ошибкой. Рассмотрим пример. Предположим, требуется инкапсулировать показываемый пользователю вопрос в следующем методе: Task<bool> GetUserPermission() Вопрос представляет собой написанный вами диалог, в котором у пользователя запрашивается какое-то разрешение. Поскольку запрашивать разрешение нужно в разных местах приложения, важно, чтобы метод было просто вызывать. Идеальная ситуация для использования асинхронного метода, так как мы не хотим, чтобы этот диалог отображался в потоке пользовательского интерфейса. Однако этот метод очень далек от традиционных асинхронных методов, в которых 54 Глава 6. Паттерн TAP производится обращение к сети или еще какая-то длительная операция. В данном случае мы ждем ответа от пользователя. Рассмотрим тело метода. private Task<bool> GetUserPermission() { // Создать объект TaskCompletionSource, чтобы можно было вернуть // задачу-марионетку TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(); // Создать диалог PermissionDialog dialog = new PermissionDialog(); // Когда пользователь закроет диалог, сделать задачу завершившейся // с помощью метода SetResult dialog.Closed += delegate { tcs.SetResult(dialog.PermissionGranted); }; // Показать диалог на экране dialog.Show(); // Вернуть еще не завершившуюся задачу-марионетку return tcs.Task; } Обратите внимание, что метод не помечен ключевым словом async; мы создаем объект Task вручную и не нуждаемся в помощи компилятора. TaskCompletionSource<bool> создает объект Task и предоставляет к нему доступ через свойство Task. Мы возвращаем этот объект, а позже делаем его завершившимся, вызывая метод SetResult объекта TaskCompletionSource. Поскольку мы следовали паттерну TAP, вызывающая программа может просто ждать разрешения пользователя с помощью await. Код получается весьма элегантным: if (await GetUserPermission()) { .... Вызывает раздражение отсутствие неуниверсальной версии класса TaskCompletionSource<T>. Однако Task<T> – подкласс Task, поэтому его можно использовать всюду, где требуется объект Task. Это в свою очередь означает, что можно воспользоваться классом TaskCompletionSource<T>, и рассматривать объект типа Task<T>, являющийся значением свойства Task, как объект типа Task. Я обычно работаю с конкретизацией TaskCompletionSource<object> и для ее заполнения вызываю SetResult(null). При желании нетрудно создать неуниверсальную версию TaskCompletionSource, основываясь на универсальной ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 00:54 |
|
C# async... await
|
|||
---|---|---|---|
#18+
Асинхронное программирование в C# 5.0 Алекс Дэвис 53 страница ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 00:56 |
|
C# async... await
|
|||
---|---|---|---|
#18+
hVosttВМоисеев Код: c# 1.
это что, извините, за лютейший пздц? какой асинк-эвейт здесь? боржоми водкой запивай, чтобы не било по печени! и это ещё что. прогресс бар на выполнение запросов? wat?! мдахх...А что не так? Обычный запуск задачи через пул потоков с асинхронным ожиданием. По сути аналог вот этого . ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 06:22 |
|
C# async... await
|
|||
---|---|---|---|
#18+
Интересный у нас автор. Вместо того чтобы проверить есть ли поток или по домохозяйски сказать тормозит ли мышка с хранмкой, он с 8 до 12 занимается прогрессбаром). ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 07:18 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ViPRosда и во втором тоже делай через бакгроундворкер С net 4.5 рекомендуется await ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 07:35 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ViPRosВМоисеев, второй вариант просто работает другой поток, потому рисует основной поток Разумеется. Иными словами - в первом варианте нет потока. Тогда зачем этот топик, непонятно. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 08:09 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеев>hVostt, сегодня, 20:53 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21046939] [21046939] >это что, извините, за лютейший пздц? это здесь . >и это ещё что. прогресс бар на выполнение запросов? wat?! мдахх... на слайде, в низу окна, зеленая полоска. хмм... а ракеты всё падали и падали ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 10:51 |
|
C# async... await
|
|||
---|---|---|---|
#18+
>ViPRos, вчера, 23:41 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21047240] [21047240] >надо прогресс сверху, тогда хорошо показывается :) На вкус, на цвет... ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 13:33 |
|
C# async... await
|
|||
---|---|---|---|
#18+
Алексей КА что не так? Обычный запуск задачи через пул потоков с асинхронным ожиданием. По сути аналог вот этого . Мда... ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 13:50 |
|
C# async... await
|
|||
---|---|---|---|
#18+
Petro123ViPRosда и во втором тоже делай через бакгроундворкер С net 4.5 рекомендуется await https://habrahabr.ru/post/261649/ ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 13:56 |
|
C# async... await
|
|||
---|---|---|---|
#18+
Мудяцкие впихивания async/await для оборачивания синхронного кода в якобы-асинхронный, реально бесят. Ну много ж времени уже прошло, вот Моисеев не может осилить работу с БД в асинхронном режиме, объясняй-не объясняй, это просто патология «сиди я сам открою», вы-то чего? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 13:59 |
|
C# async... await
|
|||
---|---|---|---|
#18+
hVostt, А че не нравится? У него драйвер бд скорее не асинхронный. Как и у меня в посгри бд. Поэтому противопоказания к await. Нету. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 14:28 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеев, Ты работай над кодом, а не картинки пости. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 14:31 |
|
C# async... await
|
|||
---|---|---|---|
#18+
Начать с: - вместо: ВМоисеев Код: c# 1.
Написать: try { await wsp.Entity_SPAsync(.... ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 14:42 |
|
C# async... await
|
|||
---|---|---|---|
#18+
Petro123Начать с: - вместо: ВМоисеев Код: c# 1.
Написать: try { await wsp.Entity_SPAsync(.... Это ТС' у если он закончил в игрушки там играться. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 14:44 |
|
C# async... await
|
|||
---|---|---|---|
#18+
hVosttPetro123пропущено... С net 4.5 рекомендуется await https://habrahabr.ru/post/261649/ тоже сердитое бла, бла, а по существу 2 неполных слова ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 14:58 |
|
C# async... await
|
|||
---|---|---|---|
#18+
Petro123ViPRosда и во втором тоже делай через бакгроундворкер С net 4.5 рекомендуется await мне надо по ходу работы одного потока менять состояние объекта в другом потоке для этого у воркера есть событие прогресса а как с await это делать? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 15:01 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ViPRosмне надо по ходу работы одного потока менять состояние объекта в другом потокеа почему в чужом топике? Топик стартеру ведь это не надо? Ты его скрином своим выбил из колеи на сутки)) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 15:17 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ViPRosмне надо по ходу работы одного потока менять состояние объекта в другом потоке для этого у воркера есть событие прогресса а как с await это делать? https://docs.microsoft.com/en-us/dotnet/csharp/async но ты можешь не читать конечно.. дока, книги, всякие фаулеры -- это для лохов ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 15:21 |
|
C# async... await
|
|||
---|---|---|---|
#18+
Petro123ViPRosмне надо по ходу работы одного потока менять состояние объекта в другом потокеа почему в чужом топике? Топик стартеру ведь это не надо? Ты его скрином своим выбил из колеи на сутки)) у меня нет проблем с await, так как я вообще не работаю с ним (у меня 4.0) но ты говоришь, что надо worker заменить на await начиная с 4.5 - вот мне и интересно стало, как это делается тем более что ТС именно над этой задачей и бьется так что топик тут не при чем покажи код синхронизации потоков через await и ТС сразу выкинет свое надуманное "максдлиназапроса" и покажет четкий прогресс ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 15:24 |
|
C# async... await
|
|||
---|---|---|---|
#18+
hVostt https://docs.microsoft.com/en-us/dotnet/csharp/async но ты можешь не читать конечно.. дока, книги, всякие фаулеры -- это для лохов доки, книги и даже фаулер (кому интересно или у кого нет собственного опыта) очень даже нужны, особенно доки или книги, которые более развернуто описывают доки и показывают примеры ссылку я читал, там ненужное сравнение с промисами, с ТАПом и т.д., а про TaskCompletetion всего одно слово ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 15:28 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ViPRosпокажи код синхронизации потоков через await ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 15:29 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ViPRosпокажет четкий прогресс У него ХРАНИМКА ЗАВИСАЕТ НА 10 МИНУТ. Какой прогресс? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 15:29 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ViPRosдоки, книги и даже фаулер (кому интересно или у кого нет собственного опыта) очень даже нужны, особенно доки или книги, которые более развернуто описывают доки и показывают примеры ссылку я читал, там ненужное сравнение с промисами, с ТАПом и т.д., а про TaskCompletetion всего одно слово ты суть-то уловил? какое асинк имеет отношение к параллелизму? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 15:29 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ViPRos., а про TaskCompletetion всего одно слово скажу второе слово. Это хорошо для http вызова. А не к ораклу. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 15:34 |
|
C# async... await
|
|||
---|---|---|---|
#18+
hVosttViPRosдоки, книги и даже фаулер (кому интересно или у кого нет собственного опыта) очень даже нужны, особенно доки или книги, которые более развернуто описывают доки и показывают примеры ссылку я читал, там ненужное сравнение с промисами, с ТАПом и т.д., а про TaskCompletetion всего одно слово ты суть-то уловил? какое асинк имеет отношение к параллелизму? асинхронность в навязанном понимание - когда инициализация (а возможно и вся работа) проходит в контексте основного потока, после инициализации основной поток работает дальше, а как делается "асинхронная" работа покрыто туманом если работа чисто ввод-вывод то Параллельно, если нет то возможно синхронно (в основном потоке), а может и параллельно основному потоку хреново вощем сделанная штукенция ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 15:35 |
|
C# async... await
|
|||
---|---|---|---|
#18+
Petro123ViPRos., а про TaskCompletetion всего одно слово скажу второе слово. Это хорошо для http вызова. А не к ораклу. пока что ощущение блабла не покидает ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 15:36 |
|
C# async... await
|
|||
---|---|---|---|
#18+
в отличии от некоторых я писал код под ДОС и ОС - 360 код для процессоров ввода/вывода хорошая книга - Джермейн :) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 15:42 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ViPRosпока что ощущение блабла не покидает Врун ты. Если поток ушел в базу на 10 мин, и ты не врубился, то заканчиваем разговор. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 15:46 |
|
C# async... await
|
|||
---|---|---|---|
#18+
Petro123ViPRosпока что ощущение блабла не покидает Врун ты. Если поток ушел в базу на 10 мин, и ты не врубился, то заканчиваем разговор. ты никогда не знаешь на сколько минут и куда что ушел и поток ни в какую базу не может уйти хорош пиздеть - покажи код ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 15:48 |
|
C# async... await
|
|||
---|---|---|---|
#18+
hVosttМудяцкие впихивания async/await для оборачивания синхронного кода в якобы-асинхронный, реально бесят .Это пройдёт. Мир не идеален, не всегда есть возможность переписать синхронный код на асинхронный. Ну и пусть поток висит в ожидании I/O, если это не является тонким местом. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 15:50 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ViPRos, Показать хранимку Закрытие оперДня на 30 мин.? Ты программист или с Луны свалился? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 15:56 |
|
C# async... await
|
|||
---|---|---|---|
#18+
Petro123ViPRos, Показать хранимку Закрытие оперДня на 30 мин.? Ты программист или с Луны свалился? покажи код синхронизации потоков при await вот твоя хранимка возвращает 5 резалтьсетов и по мере прочтения каждого резальсета прогрессбар получает инкремент ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 16:12 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ViPRosвот твоя хранимка возвращает 5 резалтьсетов и по мере прочтения каждого резальсета прогрессбар получает инкремент Эта задача в твоем больном воображении. У тс время на вычислении в хранимке идет. Ты опять споришь, про net45 сидя на net40. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 16:28 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ViPRos, Пример есть у Алексея, но там биндинг. А тут нет биндинга. Пусть получит коллекцию и разом ее отдаст. 2. Пусть скажет время задержки хранимки до отдачи. 3. Пусть сделает поток. А потом посмотрим, флудер блин. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 16:34 |
|
C# async... await
|
|||
---|---|---|---|
#18+
Petro123, вощем кода нет, как и ожидалось ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 16:37 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ViPRosPetro123, вощем кода нет, как и ожидалось Ты тупой? Поток заполняет коллекцию без приращения прогрессбара, т.к из хранимки нет способа возвращать прогрессбар. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 17:00 |
|
C# async... await
|
|||
---|---|---|---|
#18+
>hVostt, сегодня, 13:59 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21048591][21048591] >Ну много ж времени уже прошло, вот Моисеев не может осилить работу с БД в асинхронном режиме Я дошел до края, используя Ваш подход и выкинул его на помойку (могу привести полный код доступа к базе данных). Вернулся к старому. Может быть где-то я и тормоз, тогда приведите Ваш работающий код, соответствующий Ситуации 1 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 17:09 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеевМожет быть где-то я и тормоз Тормоз. Если там нет потока, а ты целые сутки прогрессБар переставлял в ГУИ с места на место. Жди код! ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 17:27 |
|
C# async... await
|
|||
---|---|---|---|
#18+
Petro123ViPRosPetro123, вощем кода нет, как и ожидалось Ты тупой? Поток заполняет коллекцию без приращения прогрессбара, т.к из хранимки нет способа возвращать прогрессбар. Это ты тупой, веренее - невежда Ридер читает данные в асинхронном потоке, которые хранимка возвращает ридеру ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 17:44 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеев>hVostt, сегодня, 13:59 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21048591][21048591] >Ну много ж времени уже прошло, вот Моисеев не может осилить работу с БД в асинхронном режиме Я дошел до края, используя Ваш подход и выкинул его на помойку (могу привести полный код доступа к базе данных). Вернулся к старому. Может быть где-то я и тормоз, тогда приведите Ваш работающий код, соответствующий Ситуации 1 что бы await wsp.Entity_SP(ИмяХП, sp, asp, RowToEntity) работал асинхронно надо wsp.Entity_SP переписать по тому шаблону, который я показал ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 17:47 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ViPRos, public static Task RunAsync(Action action) { var tcs = new TaskCompletionSource<Object>(); ThreadPool.QueueUserWorkItem(_ => { try { action(); tcs.SetResult(null); } catch(Exception exc) { tcs.SetException(exc); } }); return tcs.Task; } Или типа await RunAsync (() => wsp.Entity_SP) что ты и делаешь во втором случае ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 17:52 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ViPRosРидер читает данные в асинхронном потоке, которые хранимка возвращает ридеру До чтения, у него ГЕО вычисления в оракле минут 10. Раз автор молчит, значит так и есть. Значит первая запись будет через 10 минут. Дошло? Ты проспал на пенсии обсуждение его программы? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 17:53 |
|
C# async... await
|
|||
---|---|---|---|
#18+
Petro123ViPRosРидер читает данные в асинхронном потоке, которые хранимка возвращает ридеру До чтения, у него ГЕО вычисления в оракле минут 10. Раз автор молчит, значит так и есть. Значит первая запись будет через 10 минут. Дошло? Ты проспал на пенсии обсуждение его программы? ну и что???? хот через час дай код синхронизации потоков ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 17:57 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ViPRosну и что???? хот через час Как ну и что? Если 10 мин молчок и 15 сек закачка на клиента, то нафиг такой прогрессбар? У него уточняй. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 18:02 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ViPRosдай код синхронизации потоковты уже свой дал и обосрался) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 18:03 |
|
C# async... await
|
|||
---|---|---|---|
#18+
Petro123ViPRosдай код синхронизации потоковты уже свой дал и обосрался) пшел ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 18:10 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ViPRos, Давно бы так. А то даже в ветку веб проектов за мной прибежал. У мне оно есть. Демка AutoPOI.ru. А ты сам то делал что? Маньяк какой то. Не врубается что есть храминка не на запросе и не на датаСете. Удачи тебе с твоим Випросом. Достал. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 18:40 |
|
C# async... await
|
|||
---|---|---|---|
#18+
>ViPRos, сегодня, 17:47 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21049654][21049654] >...надо wsp.Entity_SP переписать по тому шаблону, который я показал Да он у меня работает так, как мне надо. Но на это стоит посмотреть - погугли "c# await progress" или "c# async await progressbar" ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 18:56 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеев, да пошли они у тебя получается и хорошо ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 19:11 |
|
C# async... await
|
|||
---|---|---|---|
#18+
Алексей КhVosttМудяцкие впихивания async/await для оборачивания синхронного кода в якобы-асинхронный, реально бесят .Это пройдёт. Мир не идеален, не всегда есть возможность переписать синхронный код на асинхронный. Ну и пусть поток висит в ожидании I/O, если это не является тонким местом. Мир много где и в чём не идеален. Переписывать рабочий код в эксплуатации на асинки это конечно зло. Но если уж пишешь новый проект, почему не делать по уму, не прикрываясь неидеальностью мира? Раньше жили без async/await, но и всё равно могли писать асинхронный код, просто это было очень неудобно. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 19:51 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ViPRosВМоисеев, да пошли они у тебя получается и хорошо Жирнота. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 19:51 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ViPRosасинхронность в навязанном понимание - когда инициализация (а возможно и вся работа) проходит в контексте основного потока, после инициализации основной поток работает дальше, а как делается "асинхронная" работа покрыто туманом если работа чисто ввод-вывод то Параллельно, если нет то возможно синхронно (в основном потоке), а может и параллельно основному потоку Продолжаешь гадать вместо того, чтобы почитать и разобраться? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 19:53 |
|
C# async... await
|
|||
---|---|---|---|
#18+
hVostt, Кода больше получится. Тут автокаллбэк и возврат в точку входа. Это круто. Ты как в java захотел? Там на простой поток 20 строк надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 19:55 |
|
C# async... await
|
|||
---|---|---|---|
#18+
hVosttПереписывать рабочий код в эксплуатации на асинки это конечно зло. Хотя мы один переписали. Чтобы убедиться, насколько весомый от этого профит. Профит оказался весьма и значительно весомый. Настолько, что все следующие проекты делаем async-first, без вариантов. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 19:55 |
|
C# async... await
|
|||
---|---|---|---|
#18+
Petro123hVostt, Кода больше получится. Тут автокаллбэк и возврат в точку входа. Это круто. Ты как в java захотел? Там на простой поток 20 строк надо. Какой ещё автоколлбек? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 19:56 |
|
C# async... await
|
|||
---|---|---|---|
#18+
hVosttPetro123hVostt, Кода больше получится. Тут автокаллбэк и возврат в точку входа. Это круто. Ты как в java захотел? Там на простой поток 20 строк надо. Какой ещё автоколлбек? await myProc() MessageBox ..... Строка MessageBox будет выполнена ПОСЛЕ потока и задачи. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 20:01 |
|
C# async... await
|
|||
---|---|---|---|
#18+
Petro123await myProc() MessageBox ..... Строка MessageBox будет выполнена ПОСЛЕ потока и задачи. и где тут автоколлбек? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 20:02 |
|
C# async... await
|
|||
---|---|---|---|
#18+
Petro123await myProc() с какого перепугу ты решил, что myProc будет выполнена в отдельном потоке? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 20:03 |
|
C# async... await
|
|||
---|---|---|---|
#18+
hVostt, В java сразу ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 20:03 |
|
C# async... await
|
|||
---|---|---|---|
#18+
hVosttPetro123await myProc() с какого перепугу ты решил, что myProc будет выполнена в отдельном потоке?там внутри Task.Run( ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 20:04 |
|
C# async... await
|
|||
---|---|---|---|
#18+
Поправлю - myProcAsync( Так надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 20:05 |
|
C# async... await
|
|||
---|---|---|---|
#18+
Petro123там внутри Task.Run( с хрена ли там Task.Run? в общем всё понятно с вами. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 20:21 |
|
C# async... await
|
|||
---|---|---|---|
#18+
hVosttPetro123там внутри Task.Run( с хрена ли там Task.Run? в общем всё понятно с вами. Как у автора ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 20:29 |
|
C# async... await
|
|||
---|---|---|---|
#18+
hVosttв общем всё понятно с вами. Че то ты от всего морщишься, а сам ничего не предложил. У меня счас проект такой на 100 потоков. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 20:36 |
|
C# async... await
|
|||
---|---|---|---|
#18+
hVosttКакой ещё автоколлбек?понял теперь? Поток выполнения с загогулиной). ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 20:38 |
|
C# async... await
|
|||
---|---|---|---|
#18+
Удачи аффтару! Все проблемы он решил. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 20:40 |
|
C# async... await
|
|||
---|---|---|---|
#18+
hVosttViPRosасинхронность в навязанном понимание - когда инициализация (а возможно и вся работа) проходит в контексте основного потока, после инициализации основной поток работает дальше, а как делается "асинхронная" работа покрыто туманом если работа чисто ввод-вывод то Параллельно, если нет то возможно синхронно (в основном потоке), а может и параллельно основному потоку Продолжаешь гадать вместо того, чтобы почитать и разобраться? в чем разбираться то? вот тут 21047316 я ТС скопировал то что надо и ниже привел кусок теста из книги или у тебя какое то иное понимание асинхронности в .NET или ты хочешь сказать, что асинхронность - это только для CLR I/O потоков и мы можем запустить только изначально асинхронные методы и сами их на .NET не можем писать? я же написал, что понятие "асинхронность" - фуфло в данном случае (NET). Асинхронность - независимые друг от друга процессы. Проблема обычная - синхронизация таких процессов. Для этого предусмотрено управление событиями. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 21:23 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ViPRosили ты хочешь сказать, что асинхронность - это только для CLR I/O потоков и мы можем запустить только изначально асинхронные методы и сами их на .NET не можем писать? не только. либо i/o, либо долгоиграющая cpu bound операция. кроме того, ожидание каких-то результатов работы. у автора ни того, ни другого. он тупо не понимает что и зачем делает, кто вообще ему клаву в руки дал? вы ещё ему и поддакиваете. ViPRosя же написал, что понятие "асинхронность" - фуфло в данном случае (NET). Асинхронность - независимые друг от друга процессы. Проблема обычная - синхронизация таких процессов. Для этого предусмотрено управление событиями. независимые друг от друга процессы -- это параллелизм. со всеми вытекающими проблемами синхронизации потоков, блокировками. при чём тут асинхронность? async/await в C# вообще разворачивается в конечный автомат, че ты там синхронизировать собрался? )) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 21:53 |
|
C# async... await
|
|||
---|---|---|---|
#18+
hVosttViPRosили ты хочешь сказать, что асинхронность - это только для CLR I/O потоков и мы можем запустить только изначально асинхронные методы и сами их на .NET не можем писать? не только. либо i/o, либо долгоиграющая cpu bound операция. кроме того, ожидание каких-то результатов работы. у автора ни того, ни другого. он тупо не понимает что и зачем делает, кто вообще ему клаву в руки дал? вы ещё ему и поддакиваете. ViPRosя же написал, что понятие "асинхронность" - фуфло в данном случае (NET). Асинхронность - независимые друг от друга процессы. Проблема обычная - синхронизация таких процессов. Для этого предусмотрено управление событиями. независимые друг от друга процессы -- это параллелизм. со всеми вытекающими проблемами синхронизации потоков, блокировками. при чём тут асинхронность? async/await в C# вообще разворачивается в конечный автомат, че ты там синхронизировать собрался? )) автор меня сейчас меньше всего интересует "независимые друг от друга процессы -- это параллелизм" это чистая асинхронность (диспетчера нет) параллелизм - частный случай синхронности, (требуется диспечтер) синхронизация независимых процессов - большая проблема (требуется механизм извещения, событийное управление, прерывания и т.д.) async/await негарантировнные методы параллелизма ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 22:28 |
|
C# async... await
|
|||
---|---|---|---|
#18+
Я все это перенес на ВИП.Производство и тем заработал устойчивую ненависть профессуры от СТАНКИН и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 22:35 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ViPRos, http://mesforum.ru/download/file.php?id=4863&mode=view вот асинхронность, синхронизация и т.д. есть и параллельность ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 22:36 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ViPRosasync/await негарантировнные методы параллелизма я до сих пор не понимаю, что ты хочешь синхронизировать и с чем в асинхронном коде. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 22:43 |
|
C# async... await
|
|||
---|---|---|---|
#18+
hVostt, синхронизировать (распараллелить по возможности в заданном отрезке времени) заполнение вьюмодели и генерации вью для вьюмодели интерпретация и запись промежуточных результатов и параллельный расчет расписания ... ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 22:47 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ViPRosViPRos, http://mesforum.ru/download/file.php?id=4863&mode=view вот асинхронность, синхронизация и т.д. есть и параллельность незнаю. асинхронность, если по теории, это отсутствие блокирования потока выполнение. это может быть связано и может быть абсолютно никак не связано с параллельными потоками. рассматривать «параллелизм» в вакууме мне вообще не интересно, потому как если на то уж пошло, то всё есть лишь суета сует. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 22:50 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ViPRosсинхронизировать (распараллелить по возможности в заданном отрезке времени) заполнение вьюмодели и генерации вью для вьюмодели интерпретация и запись промежуточных результатов и параллельный расчет расписания при чём тут асинхронность? в том, что ты не хочешь свой UI блокировать? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 22:51 |
|
C# async... await
|
|||
---|---|---|---|
#18+
hVostt, да при чем тут блокировки? блокировка - это когда ресурс не разделяем, мощность занята одномоментно (независимо от степени загрузки) ладно, надоело ругаться, сил уже нет ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 22:54 |
|
C# async... await
|
|||
---|---|---|---|
#18+
hVosttViPRosсинхронизировать (распараллелить по возможности в заданном отрезке времени) заполнение вьюмодели и генерации вью для вьюмодели интерпретация и запись промежуточных результатов и параллельный расчет расписания при чём тут асинхронность? в том, что ты не хочешь свой UI блокировать? не блокировать UI можно в редких случаях - когда все реентерабельно а асинхронность при том что почему то синхронизация процессов делается через так называемые асинхронные методы ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 22:56 |
|
C# async... await
|
|||
---|---|---|---|
#18+
hVostt, запуская отдельный потом, не всегда нужна асинхронность, ожидать завершение операции работающей в отдельном потоке далеко не всегда имеет смысл ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 23:01 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ViPRosда при чем тут блокировки? если блокировки не при чём, как и кого ты хочешь синхронизировать? с помощью такой-то матери? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 23:18 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ViPRosа асинхронность при том что почему то синхронизация процессов делается через так называемые асинхронные методы у меня такое ощущение, что у тебя понятийный оппорат совершенно отличается от общепринятых. асинхронное выполенние отличается от синхронного отсутствием блокирования потока исполнения. точка. мозги не калупай, или объясни своё понимание «асинхронности» и мы подберём ему аналог из общепринятых человеческих понятий. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 23:19 |
|
C# async... await
|
|||
---|---|---|---|
#18+
Roman Mejtesзапуская отдельный потом, не всегда нужна асинхронность, ожидать завершение операции работающей в отдельном потоке далеко не всегда имеет смысл любое ожидание чего угодно является блокировкой, следовательно это синхронное выполнение. банальный Wait на таске блокирует поток, значит ни о какой асинхронности говорить не приходится. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 23:21 |
|
C# async... await
|
|||
---|---|---|---|
#18+
Roman Mejtesожидать завершение операции работающей в отдельном потоке вот две операции: a = 1 + 2 b = a + 3 вторая операция ожидает, пока не выполнится первая. это нужно, потому что нам требуется результат. если бы результат был бы не нужен, вторую операцию можно было бы исполнять не ожидая первой. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 23:23 |
|
C# async... await
|
|||
---|---|---|---|
#18+
>hVostt, вчера, 21:53 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21050190][21050190] >... он тупо не понимает что и зачем делает... Вы батенька явно что-то не то съели - задача то проста - показать в динамике время получения выборки - запускаю таймер и показываю его счетчик секунд в ПрогрессБаре ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 00:53 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеев>hVostt, вчера, 21:53 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21050190][21050190] >... он тупо не понимает что и зачем делает... Вы батенька явно что-то не то съели - задача то проста - показать ву динамике время получения выборки - запускаю таймер и показываю его счетчик секунд в ПрогрессБаре )))) Вы бы хоть мемберов тут пожалели. Некоторые тут с пеной требовали синхронизации потоков с результатами от хранимки. 2. ПрогрессБар это полоска а ля position min\max а не таймер. Кто тебе клаву дал, раз молчишь как партизан? В прошлой теме у тебя было 120 страниц. В этой, ерунду обсуждаем кучу времени. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 07:29 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеев>hVostt, вчера, 21:53 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21050190][21050190] >... он тупо не понимает что и зачем делает... Вы батенька явно что-то не то съели - задача то проста - показать в динамике время получения выборки - запускаю таймер и показываю его счетчик секунд в ПрогрессБаре мне нечего добавить к тому, что я уже сказал ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 07:33 |
|
C# async... await
|
|||
---|---|---|---|
#18+
Petro1232. ПрогрессБар это полоска а ля position min\max а не таймер. да бесполезно объяснять очевидное, это паталогия ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 07:34 |
|
C# async... await
|
|||
---|---|---|---|
#18+
>Petro123, сегодня, 07:29 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21050662] [21050662] >hVostt , сегодня, 07:34 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21050668] [21050668] Мужики, выключайте идиотов и включайте извилины -немедленно-, а то если долго претворяться, можно и преобразоваться. А пока не включили извилины, повторяю: Код: 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.
Почему проходит это: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
и не проходит это: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
я не знаю. Может быть ошибка разработчика, а может быть надо так: Код: c# 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 12:12 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеева может быть надо так: Код: c# 1. 2. 3. 4. 5.
я же тебе показал, что тут надо подкрутить TCompletetionSource ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 12:20 |
|
C# async... await
|
|||
---|---|---|---|
#18+
а так, когда у тебя работает - она работает за счет того, что твой метод запущен в другом потоке, а таймер работает в основном потоке. а когда не работает, потому что твой метод работает в основном потоке (так как await выкидывается) и таймер не может работать. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 12:23 |
|
C# async... await
|
|||
---|---|---|---|
#18+
>ViPRos, 19 дек 17, 23:58 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21047273] [21047273] Я подобный код у себя преобразовал примерно так: wk.DoWork сделал async DoWork wk.RunWorkerCompleted сделал основной веткой программы и в начало её тела включил -await DoWork- функционал wk.ProgressChanged включил в async DoWork, благо DoWork выполняется в UI потоке и это мне понравилось ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 12:30 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеев, я про этот код Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 12:32 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеев, ну для твоих целей бгворкер лучше, так как там есть прогресс (синхронизация потоков возможно встроенными возможностями) и думать не надо ни о чем и можно показать нормальный прогресс, допустим по числу прочитанных записей, числу резалтьсетов и т.д., а не крутить фигню нескончаемую. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 12:35 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ViPRosВМоисеев, я про этот код Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Ну это аналог Task.Run . Зачем такое писать самому? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 12:38 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеевМужики 2 вопроса: - ты можешь на каждый пост отвечать и отвечать быстро? Хотя бы в пределах часа? - ты хочешь работать с современным net 4.5, .....6? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 12:41 |
|
C# async... await
|
|||
---|---|---|---|
#18+
Алексей КViPRosВМоисеев, я про этот код Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Ну это аналог Task.Run . Зачем такое писать самому? ну он хочет await мойМетод ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 12:43 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ViPRosАлексей Кпропущено... Ну это аналог Task.Run . Зачем такое писать самому? ну он хочет await мойМетодНу я понял. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 12:44 |
|
C# async... await
|
|||
---|---|---|---|
#18+
Алексей КViPRosпропущено... ну он хочет await мойМетодНу я понял. он же всю ветку только из за этого завел ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 12:45 |
|
C# async... await
|
|||
---|---|---|---|
#18+
>ViPRos, сегодня, 12:23 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21051324][21051324] >...а когда не работает... На мой взгляд, дело тоньше (могу ошибаться): Когда оконная функция приложения получает свой квант в UI потоке, она начинает обработку своей очереди сообщений и думаю, что оконной функции глубоко наплевать, кто положил сообщение в очередь. Важно, что она обязана как-то обработать сообщение: может быть просто отбросить, а может и вызвать ветку обработчика сообщения, что и делает в моём случае await TaskRun - не запрещает обработку от таймера. Почему этого нет в другом случае - вопрос, по моей логике это ошибка разработчика ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 12:47 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ViPRosАлексей Кпропущено... Ну я понял. он же всю ветку только из за этого завелЯ понял. Просто есть родной метод Task.Run . Что мешает использовать его для осуществления мечты топикстартера? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 12:48 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеев>ViPRos, сегодня, 12:23 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21051324][21051324] >...а когда не работает... На мой взгляд, дело тоньше (могу ошибаться): Когда оконная функция приложения получает свой квант в UI потоке, она начинает обработку своей очереди сообщений и думаю, что оконной функции глубоко наплевать, кто положил сообщение в очередь. Важно, что она обязана как-то обработать сообщение: может быть просто отбросить, а может и вызвать ветку обработчика сообщения, что и делает в моём случае await TaskRun - не запрещает обработку от таймера. Почему этого нет в другом случае - вопрос, по моей логике это ошибка разработчика блин просто у тебя нет в методе DoEvents() где-нить, а так и таймер бы работал всегда ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 12:49 |
|
C# async... await
|
|||
---|---|---|---|
#18+
Алексей КViPRosпропущено... он же всю ветку только из за этого завелЯ понял. Просто есть родной метод Task.Run . Что мешает использовать его для осуществления мечты топикстартера? ну он и осуществил в своем "втором" варианте но он думает что там у него что то асинхронно получается так как не понимает как и в каком потоке работает таймер, кажется ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 12:51 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ViPRosблин просто у тебя нет в методе DoEvents() где-нить, а так и таймер бы работал всегда"Не дай Бог каждому..." (ц) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 12:51 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеев, Да. Должно работать, но почему то у тебя всегда 100 страниц. Обратной связи нет))))) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 12:51 |
|
C# async... await
|
|||
---|---|---|---|
#18+
Алексей КViPRosблин просто у тебя нет в методе DoEvents() где-нить, а так и таймер бы работал всегда"Не дай Бог каждому..." (ц) ну иногда надо дать работать и другим ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 12:51 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ViPRosАлексей Кпропущено... Я понял. Просто есть родной метод Task.Run . Что мешает использовать его для осуществления мечты топикстартера? ну он и осуществил в своем "втором" варианте но он думает что там у него что то асинхронно получается так как не понимает как и в каком потоке работает таймер, кажетсяПричём тут он? Я спрашиваю, накой самому писать аналог Task.Run? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 12:52 |
|
C# async... await
|
|||
---|---|---|---|
#18+
Алексей К, а кто? это не моя проблема, а его :) сижу на 4.0 ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 12:57 |
|
C# async... await
|
|||
---|---|---|---|
#18+
>ViPRos, сегодня, 12:35 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21051388][21051388] >ну для твоих целей бгворкер лучше... Э не батенька, с точностью до наоборот. В твоём варианте прав hVostt - async DoWork в случае await DoWork работает UI потоке и можешь прямо здесь работать с графическими компонентами окна. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 12:58 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ViPRosсижу на 4.0Ну тогда Task.Factory.StartNew . Да? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 12:59 |
|
C# async... await
|
|||
---|---|---|---|
#18+
Алексей К, Можно, но то что выложено лучше показывает суть ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 13:10 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеев>ViPRos, сегодня, 12:35 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21051388][21051388] >ну для твоих целей бгворкер лучше... Э не батенька, с точностью до наоборот. В твоём варианте прав hVostt - async DoWork в случае await DoWork работает UI потоке и можешь прямо здесь работать с графическими компонентами окна. да просто там нет никакого await и твой метод блокирует таймер ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 13:12 |
|
C# async... await
|
|||
---|---|---|---|
#18+
а так, твоя проблема решилась и хорошо, надоело это из за тебя пришлось прочитать все это говно, которое мне нафиг не надо было ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 13:13 |
|
C# async... await
|
|||
---|---|---|---|
#18+
Алексей КViPRosВМоисеев, я про этот код Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Ну это аналог Task.Run . Зачем такое писать самому? ну вообще-то нет, ни разу не аналог. кроме того с помощью TaskComplectionSource можно вообще обойтись без запуска потока. реализация этого паттерна у VIPROS-а так себе. дёрнул незнаю откуда. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 15:10 |
|
C# async... await
|
|||
---|---|---|---|
#18+
hVosttАлексей Кпропущено... Ну это аналог Task.Run . Зачем такое писать самому? ну вообще-то нет, ни разу не аналог.С дуба рухнул? :-) hVosttкроме того с помощью TaskComplectionSource можно вообще обойтись без запуска потока.Да ну?!?!?!?! Вот это да!?!?!?!?! И чё? :-) Не пойму, к чему ты заговорил о TaskComplectionSource, когда речь идёт о сравнении всего метода RunAsync от ViPRos с родным методом Task.Run. hVosttреализация этого паттерна у VIPROS-а так себе. дёрнул незнаю откуда.Обычная реализация, только незачем её реализовывать, коль есть готовое, на что я и указал. hVostt, ну ты реально думаешь, что можешь мне по этой теме рассказать что-то новое, чего я не знаю? Наивный... ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 15:24 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеевПочему проходит это: Код: c# 1.
и не проходит это: Код: c# 1.
В точке await поток должен для явной асинхронности разделиться на два потока. Видимо, метод wsp.Entity_SP не является асинхронным, т.к. внутри нет вилки на два потока. И вилку приходится делать при помощи Task.Run() ЗЫ. В частном случае, метод может, решать, быть ему асинхронным, или не быть. Если метод решит, что операция не займет много времени, метод может не разделять потоки и выполняться в синхронном режиме. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 15:48 |
|
C# async... await
|
|||
---|---|---|---|
#18+
refregВидимо, метод wsp.Entity_SP не является асинхронным, т.к. внутри нет вилки на два потока Почти это я пытался вбить в башку ТС. Слово await это только декларация о намерениях. Внутри должен быть старт потока. Я не усложняю ТЗ и не хочу обсуждать про выбор в вилке. Я за await myProcAsinc() Как рекомендует ms. Т.е. мы вызываем изначально метод с потоком. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 16:00 |
|
C# async... await
|
|||
---|---|---|---|
#18+
hVosttну вообще-то нет, ни разу не аналог. кроме того с помощью TaskComplectionSource можно вообще обойтись без запуска потока. реализация этого паттерна у VIPROS-а так себе. дёрнул незнаю откуда. я бл* привел ссылку на автора и выложил кусок теста Асинхронное программирование в C# 5.0 Алекс Дэвис ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 16:05 |
|
C# async... await
|
|||
---|---|---|---|
#18+
hVosttспециально для Алексея http://andrey.moveax.ru/post/csharp-sync-to-async Надуманная статья не относящаяся к задаче. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 16:07 |
|
C# async... await
|
|||
---|---|---|---|
#18+
hVosttреализация этого паттерна Какие паттерны, если там 2 строки кода? Окстись. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 16:10 |
|
C# async... await
|
|||
---|---|---|---|
#18+
hVosttну вообще-то нет, ни разу не аналог. кроме того с помощью TaskComplectionSource можно вообще обойтись без запуска потока. реализация этого паттерна у VIPROS-а так себе. дёрнул незнаю откуда. большой разницы не вижу. по сути это: if быстро -- SetResult else if долго -- Task.Run ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 16:10 |
|
C# async... await
|
|||
---|---|---|---|
#18+
hVosttспециально для Алексея http://andrey.moveax.ru/post/csharp-sync-to-async он пересказывает как раз ту книгу ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 16:11 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ПарамонhVosttну вообще-то нет, ни разу не аналог. кроме того с помощью TaskComplectionSource можно вообще обойтись без запуска потока. реализация этого паттерна у VIPROS-а так себе. дёрнул незнаю откуда. большой разницы не вижу. по сути это: if быстро -- SetResult else if долго -- Task.Runи нафига тут это надо? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 16:12 |
|
C# async... await
|
|||
---|---|---|---|
#18+
refregВ частном случае, метод может, решать, быть ему асинхронным, или не быть. В очень частном, т.к. у меня еще пул решает и оптимизирует короткие задачи на 0,3 сек. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 16:17 |
|
C# async... await
|
|||
---|---|---|---|
#18+
Дык вы и не попытались посмотреть код при таких сомнениях? ужось ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 16:49 |
|
C# async... await
|
|||
---|---|---|---|
#18+
Petro123refregВ частном случае, метод может, решать, быть ему асинхронным, или не быть. В очень частном, т.к. у меня еще пул решает и оптимизирует короткие задачи на 0,3 сек.При чем здесь ты? превратили хороший форум в ПТ... И что такое очень частный? А есть еще очень-очень частный? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 16:59 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ViPRos, У нас без сомнений на амбразуру только ты первый). А ТС ждет 50 страниц))). ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 16:59 |
|
C# async... await
|
|||
---|---|---|---|
#18+
refregИ что такое очень частный? А есть еще очень-очень частный? Твой частный случай не относится к теме топика. Не флуди! ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 17:01 |
|
C# async... await
|
|||
---|---|---|---|
#18+
refregПри чем здесь ты? ТС просит запустить хранимку с часиками, а не твою вилку и управления потоками. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 17:03 |
|
C# async... await
|
|||
---|---|---|---|
#18+
Вроде весна еще не скоро... ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 17:04 |
|
C# async... await
|
|||
---|---|---|---|
#18+
Pedro123refregПри чем здесь ты? ТС просит запустить хранимку с часиками, а не твою вилку и управления потоками.Мда... ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 17:08 |
|
C# async... await
|
|||
---|---|---|---|
#18+
refregPedro123пропущено... ТС просит запустить хранимку с часиками, а не твою вилку и управления потоками.Мда... Ты тоже на 4.0? Алексей КViPRosсижу на 4.0Ну тогда Task.Factory.StartNew . Да? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 17:16 |
|
C# async... await
|
|||
---|---|---|---|
#18+
Алексей КhVostt, ну ты реально думаешь, что можешь мне по этой теме рассказать что-то новое, чего я не знаю? Наивный... После того как ты сказал «а чё такого?» про Task.Run для кода ТС, я уже сильно сомневаюсь, знаешь ли ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 17:43 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ViPRosя бл* привел ссылку на автора и выложил кусок теста Асинхронное программирование в C# 5.0 Да, выложил, но сделал это невпопад, автору надо мозг лечить, а не TaskComplectionSource впихивать, который ему не упал ни разу. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 17:44 |
|
C# async... await
|
|||
---|---|---|---|
#18+
Petro123hVosttспециально для Алексея http://andrey.moveax.ru/post/csharp-sync-to-async Надуманная статья не относящаяся к задаче. Ваши обязательные 3 копейки приняты, и отосланы автору статьи почтой. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 17:44 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ViPRoshVosttспециально для Алексея http://andrey.moveax.ru/post/csharp-sync-to-async он пересказывает как раз ту книгу он отлично объясняет суть для тех, кто видит здесь какую-то магию. TCS может использоваться для включения старого кода на TAP. и ещё в редких ограниченных случаях в целях оптимизации. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 17:46 |
|
C# async... await
|
|||
---|---|---|---|
#18+
refregPedro123пропущено... ТС просит запустить хранимку с часиками, а не твою вилку и управления потоками.Мда... Угу, «мда» не то слово. Рад появлению второго здравомыслящего человека в ветке, теперь нас здесь двое ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 17:47 |
|
C# async... await
|
|||
---|---|---|---|
#18+
>refreg, сегодня, 15:48 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21052460][21052460] >...Видимо, метод wsp.Entity_SP не является асинхронным... Вот код, где по Вашему не так? Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 17:49 |
|
C# async... await
|
|||
---|---|---|---|
#18+
hVosttДа, выложил, но сделал это невпопад, автору надо мозг лечить, а не TaskComplectionSource впихивать, который ему не упал ни разу. *автору всмысле ТС )) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 17:49 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеев, Хм.. так у тебя метод-то асинхронный ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 17:52 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеев, Нужно не reader в поток запихивать, а целиком весь метод вместе с получением соединения. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 17:55 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеев Код: c# 1.
Если есть асинхронный метод в драйвере, то беру слова назад. У меня с Posgre нет таких. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 17:59 |
|
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.
билять, нашёл! а я уж думал у меня с памятью что-то не то. помню же, что никакого асинка в методе Entity_SP нам не показывали.. а тут бац! и нарисовалось. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 18:03 |
|
C# async... await
|
|||
---|---|---|---|
#18+
Petro123У меня с Posgre нет таких. как это нет? npgsql ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 18:03 |
|
C# async... await
|
|||
---|---|---|---|
#18+
hVostt, Именно)))))) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 18:04 |
|
C# async... await
|
|||
---|---|---|---|
#18+
hVosttPetro123У меня с Posgre нет таких. как это нет? npgsql старый проект. Поищу. Счас все коннекты в пуле берутся по одному на поток. Работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 18:05 |
|
C# async... await
|
|||
---|---|---|---|
#18+
hVostt, Он ведь не показывал этот код? Сволочь)))) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 18:06 |
|
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 тоже ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 18:08 |
|
C# async... await
|
|||
---|---|---|---|
#18+
hVosttВМоисеевВы не правы: Код: 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.
билять, нашёл! а я уж думал у меня с памятью что-то не то. помню же, что никакого асинка в методе Entity_SP нам не показывали.. а тут бац! и нарисовалось. ну, он переделал видишь метод то по другому называется ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 18:12 |
|
C# async... await
|
|||
---|---|---|---|
#18+
>hVostt, сегодня, 18:03 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21053116][21053116] >...а тут бац! и нарисовалось. Так работаем с хранимкой в случае await Task.Run ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 18:17 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеев>refreg, сегодня, 15:48 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21052460][21052460] >...Видимо, метод wsp.Entity_SP не является асинхронным... Вот код, где по Вашему не так? Код: c# 1. 2. 3. 4.
Отсюда : Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
Обрати внимание, что тут 3 await. Получить реадер можно очень быстро, но надо же еще получить данные. И, еще момент: драйвер может быть и синхронным, или решить, что задачу можно выполнить синхронно. Надо убедиться в этой возможности у поставщика, в документации. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 18:19 |
|
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 |
|
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 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ViPRos, А нафига нам тут портянки кода транспортного уровня? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 14:36 |
|
C# async... await
|
|||
---|---|---|---|
#18+
Petro123ViPRos, А нафига нам тут портянки кода транспортного уровня? пшел нах ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 14:39 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ViPRos, Учись студент у Алексея : http://www.sql.ru/forum/1271937-4/async-loading-ot-stivena-kliri?mid=20814728#20814728 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 14:51 |
|
C# async... await
|
|||
---|---|---|---|
#18+
hVosttrefregЕсли не конфигурировать поток, и вызвать код из UI, то UI будет постоянно задействоваться, что приводит к торможению UI, вплоть до полного зависания.То, о чём ты говоришь, вообще не имеет отношения к асинхронности. Никакого от слова совсем. Если хочешь выполнять тяжёлую CPU Bound работу, не влияя на UI, ты должен запустить задачу background потоке руками. Асинк эту задачу не решает.Почему идет отход от контекста? Вопрос был сформулирован четко: "Почему код не работает?" Вот и давайте ответим почему код не работает. И что надо сделать, что бы заработал. hVosttrefregНадо было сделать по умолчанию false. Было бы более логично... Ни в коем случае. Не логично ни разу :) false нужен только для писателей библиотек, а основная масса разрабов это прикладные разработчики.Вкусовщина. А я считаю что дополнительная обязанность (восстановление контекста), должна прописываться явно , А по-умолчанию, отключена ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 15:01 |
|
C# async... await
|
|||
---|---|---|---|
#18+
>refreg, вчера, 18:50 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21053247] [21053247] >Попробуй везде .... Провел эксперимент: 1. Тормознул хранимку на 15 сек. 2. На строку с sp(RowToEntity); поставил точку останова Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
3. Запустил приложение - таймер не работает В случае await Task.Run имеем штатную работу таймера ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 15:29 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеев, А где использование ридера? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 15:41 |
|
C# async... await
|
|||
---|---|---|---|
#18+
>Petro123, сегодня, 15:41 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21055580][21055580] >А где использование ридера? Так программа и не доходит до ридера, а таймер и не начинает работать. Не в ридере дело ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 15:45 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеев Код: c# 1. 2. 3. 4. 5. 6. 7.
Что выдает Debug output? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 15:47 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеев Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 15:48 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеев>Petro123, сегодня, 15:41 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21055580][21055580] >А где использование ридера? Так программа и не доходит до ридера, а таймер и не начинает работать. Не в ридере дело Я и смотрю где у тебя стоит поток выполнения. В драйвере? ПО ШАГАМ ПРОЙДИ.Орать надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 15:50 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеев, Завернул бы ты всё вместе с коннектом к хренам собачьим в task.run и дело с концом. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 15:57 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеев, На всякий случай F10 по шагам))))) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 15:58 |
|
C# async... await
|
|||
---|---|---|---|
#18+
Кстати, раньше ms к ораклу не умел дрова делать) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 16:00 |
|
C# async... await
|
|||
---|---|---|---|
#18+
Petro123, Выпей смекту, от словесного обычно не помагают, но кто знает, может те помогут ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 16:05 |
|
C# async... await
|
|||
---|---|---|---|
#18+
refregPetro123, Выпей смекту, от словесного обычно не помагают, но кто знает, может те помогут Тебя тоже можно послать. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 16:12 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеев Код: plsql 1.
Без этой строки работает? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 18:18 |
|
C# async... await
|
|||
---|---|---|---|
#18+
>refreg, сегодня, 15:48 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21055603][21055603] Извини, но результат отрицательный. Поставил точку останова в обработчике событий от таймера - сюда поток не доходит ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 18:20 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеев>refreg, сегодня, 15:48 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21055603][21055603] Извини, но результат отрицательный. Поставил точку останова в обработчике событий от таймера - сюда поток не доходитВопрос был что выдает Debug Output? Что за обработчик событий от таймера? Причем он здесь? Реши сначала одну проблему. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 18:39 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеев, Тебе дали кучу действий для тестов. На неделю. Спокойно решай и приходи. Если без той строки работает, а тормозя java процесс нет, то сам себе ССЗБ. Не умеет ридер выдавать частями с ручником на 15 сек. Потом, ты попрятал ридер, а он должен быть в контексте и на своём месте. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 18:49 |
|
C# async... await
|
|||
---|---|---|---|
#18+
>refreg, сегодня, 18:39 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21056048] [21056048] >Вопрос был что выдает Debug Output? >Что за обработчик событий от таймера? Причем он здесь? Реши сначала одну проблему. Какая разница, что выдаёт Debug Output? Поток до него не доходит, пока Oracle не выполнит хранимку. Он выполняет её 15 секунд. ПрогресБар должен показать текущее значение счетчика таймера от 1 до 15 по секундно. Этого не наблюдается. И видимо, await без run не важно, какую долгоиграющую ветку он запускает, непременно блокирует обработку сообщений от таймера . ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 19:22 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеев, Ты собрался в хранимке строить временные таблички. Потом перебрасывать данные внутри базы, потом..... И думаешь, что драйвер сразу вернет управление в код клиента? Ты с головой дружишь? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 19:31 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеевКакая разница, что выдаёт Debug Output? Поток до него не доходит, пока Oracle не выполнит хранимку. Он выполняет её 15 секунд.Это есть великая тайна? Да уж... Ладно, я устал... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 19:38 |
|
C# async... await
|
|||
---|---|---|---|
#18+
>Petro123, сегодня, 19:31 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21056123][21056123] >...Ты с головой дружишь?... Включи мозг - таймер работает независимо (асинхронно) от драйвера. По идее, await не должен блокировать обработку оконной очереди сообщений, иначе это task.wait. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 19:41 |
|
C# async... await
|
|||
---|---|---|---|
#18+
>refreg, сегодня, 19:38 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21056140][21056140] >Это есть великая тайна?... 1Debug = 2Debug = 1 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 19:53 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеев>Petro123, сегодня, 19:31 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21056123][21056123] >...Ты с головой дружишь?... Включи мозг - таймер работает независимо (асинхронно) от драйвера. По идее, await не должен блокировать обработку оконной очереди сообщений, иначе это task.wait. Кто тебе сказал? Сдвиг окна, меню работает? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 19:58 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеевawait не должен блокироватьэто только ОПЕРАТОР. Он один не работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 20:01 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ViPRosВ моем куске кода запускаются потоки и я их отслеживаю каждого и вижу что они делают. В бакгроунде у меня запускается воркер (этого для UI достаточно), а он генерирует параллельные потоки загрузки данных. Это всё крайне занимательно, но при чём тут асинк? ViPRosОни между прочим тоже из пула, потому по умолчанию бакгроунд. Ну нет же.. ээх.. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 20:09 |
|
C# async... await
|
|||
---|---|---|---|
#18+
refregПочему идет отход от контекста? Вопрос был сформулирован четко: "Почему код не работает?" Вот и давайте ответим почему код не работает. И что надо сделать, что бы заработал. Я дал ссылку, но ТС толи не осилил, толи просто не стал читать.. refregВкусовщина. А я считаю что дополнительная обязанность (восстановление контекста), должна прописываться явно , А по-умолчанию, отключена Как же я ненавижу слово «вкусовщина», у меня иногда такое ощущение складывается, что некоторые программеры считают, что они на показе мод. Вот здесь в рюшечку, здесь в цветочек. Какая ещё вкусовщина, вы чего вообще? Что касается восстановление контекста, если хорошенько погуглить, можно найти развёрнутые пояснение к такому дизайну и на стеке и в блогах майкрософт. И там вряд ли вы найдёте хоть один намёк на «вкусовщину». Даже у профессиональных дизайнеров «фломастеры» считается грязным ругательством, а тут повсеместно.. ну как так-то? )) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 20:14 |
|
C# async... await
|
|||
---|---|---|---|
#18+
hVosttViPRosВ моем куске кода запускаются потоки и я их отслеживаю каждого и вижу что они делают. В бакгроунде у меня запускается воркер (этого для UI достаточно), а он генерирует параллельные потоки загрузки данных. Это всё крайне занимательно, но при чём тут асинк? ViPRosОни между прочим тоже из пула, потому по умолчанию бакгроунд. Ну нет же.. ээх.. я не знаю при чем тут асинк, он меня не волнует ни грамма ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 20:16 |
|
C# async... await
|
|||
---|---|---|---|
#18+
hVostt, Тебе ответили за 2 минуты))) LOL ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 20:20 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ViPRosя не знаю при чем тут асинк, он меня не волнует ни грамма потому что ты педалишь потоки и синкаешься с UI. и это всё на одного единственного пользователя. прям да... ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 20:29 |
|
C# async... await
|
|||
---|---|---|---|
#18+
hVosttViPRosОни между прочим тоже из пула, потому по умолчанию бакгроунд. Ну нет же.. ээх.. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 20:36 |
|
C# async... await
|
|||
---|---|---|---|
#18+
hVosttViPRosя не знаю при чем тут асинк, он меня не волнует ни грамма потому что ты педалишь потоки и синкаешься с UI. и это всё на одного единственного пользователя. прям да... ))) Да при чем тут пользователь? С UI работает BGWorker, но он запускает еще кучу потоков своих для загрузки данных и они все независимо (АСИНХРОННО) друг от друга работают, а синхронизируются только через примитивы синхронизации ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 20:42 |
|
C# async... await
|
|||
---|---|---|---|
#18+
>Petro123, сегодня, 19:58 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21056185] [21056185] >Кто тебе сказал?... Посмотри хотя бы здесь ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 20:43 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ViPRos, про картинку.. параллельная экзекуция это коненчо хорошо, но ты действуешь как слоняра в посудной лавке, танком стрижёшь газоны. хотя это всё не так заметно на фоне одного жирного пользователя-единоличника. а теперь давай поговорим про сервер, обрабатывающий запросы, логику и всё-всё остальное тысяч и десятков тысяч пользователей. нужно как минимум по потоку на каждого пользователя. а учитывая твои аппетиты, то по 10 потоков. а это положит на лопатки сервак, моментально уйдёт в DOS. что делать? ставить их в ожидание? пусть ждут своей очереди, за каким-то экраном, и пусть неудачники падают с таймаутом )) казалось бы, при чём тут асинки.... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 20:54 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ViPRosДа при чем тут пользователь? С UI работает BGWorker, но он запускает еще кучу потоков своих для загрузки данных и они все независимо (АСИНХРОННО) друг от друга работают, а синхронизируются только через примитивы синхронизации ты до сих пор не понимаешь концепцию асинхронности, и не воспринимаешь поток, как очень значимый ресурсоёмкий объект, у которого кроме синхронизации, обеспечивающих безопасность твоих данных, ещё есть и много чего другого. код, написанный полностью на async-ах позволяет очень здорово экономить на потоках, а не плодить их и раскидываться, словно это мусор. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 20:59 |
|
C# async... await
|
|||
---|---|---|---|
#18+
hVosttViPRos, про картинку.. параллельная экзекуция это коненчо хорошо, но ты действуешь как слоняра в посудной лавке, танком стрижёшь газоны. хотя это всё не так заметно на фоне одного жирного пользователя-единоличника. а теперь давай поговорим про сервер, обрабатывающий запросы, логику и всё-всё остальное тысяч и десятков тысяч пользователей. нужно как минимум по потоку на каждого пользователя. а учитывая твои аппетиты, то по 10 потоков. а это положит на лопатки сервак, моментально уйдёт в DOS. что делать? ставить их в ожидание? пусть ждут своей очереди, за каким-то экраном, и пусть неудачники падают с таймаутом )) казалось бы, при чём тут асинки.... да мне то это пофиг??? У меня клиент сервер - на стороне клиента то что видишь, а на стороне сервера - транзакции. Или ты предлагаешь мне транзакции переписать? Тогда нах мне СКЛ сервер? Если для тебя основная фича асинк в том, что бы все работали последовательно в одном контексте:):):), то я не завидую твоим клиентам. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 20:59 |
|
C# async... await
|
|||
---|---|---|---|
#18+
hVosttViPRosДа при чем тут пользователь? С UI работает BGWorker, но он запускает еще кучу потоков своих для загрузки данных и они все независимо (АСИНХРОННО) друг от друга работают, а синхронизируются только через примитивы синхронизации ты до сих пор не понимаешь концепцию асинхронности, и не воспринимаешь поток, как очень значимый ресурсоёмкий объект, у которого кроме синхронизации, обеспечивающих безопасность твоих данных, ещё есть и много чего другого. код, написанный полностью на async-ах позволяет очень здорово экономить на потоках, а не плодить их и раскидываться, словно это мусор. Да ничего они не экономят, если в лействительности нет ожидания ввода-вывода. Уж лучше было бы явно ввести потоки ввода/вывода и закончить эту вакханалию сакральными играми - "а в каком потоке этот асинхронный код будет выполняться". ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 21:01 |
|
C# async... await
|
|||
---|---|---|---|
#18+
И у меня не потоки, а таски. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 21:02 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ViPRosда мне то это пофиг??? а не должно быть. ViPRosУ меня клиент сервер - на стороне клиента то что видишь, а на стороне сервера - транзакции. ну нет же.. что ты рассказываешь. где работа выполняется? разбросана по всем клиентам густым жирным слоем. зачем тебе потоки? скажешь, генерить формочки? ну не смеши.. ViPRosИли ты предлагаешь мне транзакции переписать? Тогда нах мне СКЛ сервер? ну двух-звенка заведомо ущербная и тянет только на очень простейшие ПК, какие-нибудь АРМ-ы там с однобитной логикой, завязанной целиком и полностью на хранимках. ViPRosЕсли для тебя основная фича асинк в том, что бы все работали последовательно в одном контексте:):):), то я не завидую твоим клиентам. асинк позволяет даже дохлому серверу пахать за десятерых, ну и это правильный подход в целом. хоть и не забесплатно. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 21:05 |
|
C# async... await
|
|||
---|---|---|---|
#18+
hVosttасинк позволяет даже дохлому серверу пахать за десятерых, ну и это правильный подход в целом. хоть и не забесплатно. дармовщины нет нигде смотри как node.js загибается если обработка этих асинков на том же сервере ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 21:08 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеев>Petro123, сегодня, 19:58 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21056185] [21056185] >Кто тебе сказал?... Посмотри хотя бы здесь я тебе вопросы задал, а ты мне ссылкой на вопрос. Если туго с памятью, то: - без строки в хранимке работает? - меню работает? Тормозит-морозится интерфейс? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 21:09 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ViPRosДа ничего они не экономят, если в лействительности нет ожидания ввода-вывода. ну а что там ещё может быть??? ты там факториалы чтоли считаешь? или пережёвываешь гигабайты данных в ОЗУ? тогда действительно вопрос, нахрена тебе скул ))))) ViPRosУж лучше было бы явно ввести потоки ввода/вывода и закончить эту вакханалию сакральными играми - "а в каком потоке этот асинхронный код будет выполняться". так и ввели очень давно, есть абстракция I/O потоков ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 21:10 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ViPRosИ у меня не потоки, а таски. у тебя явный TPL, так что пофиг во что ты обернул задачу, ты плодишь потоки и ловишь все прелести синхронизации, в том числе с контекстом синхронизации и UI потоком ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 21:11 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ViPRosсмотри как node.js загибается если обработка этих асинков на том же сервере как загибается? отлично справляется с тысячами запросов в одно рыло ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 21:11 |
|
C# async... await
|
|||
---|---|---|---|
#18+
hVosttViPRosДа ничего они не экономят, если в лействительности нет ожидания ввода-вывода. ну а что там ещё может быть??? ты там факториалы чтоли считаешь? или пережёвываешь гигабайты данных в ОЗУ? тогда действительно вопрос, нахрена тебе скул ))))) ViPRosУж лучше было бы явно ввести потоки ввода/вывода и закончить эту вакханалию сакральными играми - "а в каком потоке этот асинхронный код будет выполняться". так и ввели очень давно, есть абстракция I/O потоков Да я еще хуже считаю - я считаю NP полную задачу построения оптимального расписания. Надо явно что бы можно было назначить поток для обслуживания задач ввода/вывода. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 21:20 |
|
C# async... await
|
|||
---|---|---|---|
#18+
hVosttViPRosсмотри как node.js загибается если обработка этих асинков на том же сервере как загибается? отлично справляется с тысячами запросов в одно рыло у меня много другой информации. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 21:21 |
|
C# async... await
|
|||
---|---|---|---|
#18+
hVosttViPRosИ у меня не потоки, а таски. у тебя явный TPL, так что пофиг во что ты обернул задачу, ты плодишь потоки и ловишь все прелести синхронизации, в том числе с контекстом синхронизации и UI потоком да, блин, синхронизация все равно нужна, есть неразделяемые объекты. В ДатаТейбл, допустим, фиг два потока запишут одновременно. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 21:23 |
|
C# async... await
|
|||
---|---|---|---|
#18+
TPL именно для этого и сделан. А вот если сделан был бы внутри ТПЛ автоматически не плодить потоки, если какой то поток ушел в I|O то было бы хорошо, но нифига такого нету. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 21:24 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ПС. А на картинке я не ТПЛ показывал, а то что потоки все BG ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 21:28 |
|
C# async... await
|
|||
---|---|---|---|
#18+
>Petro123,сегодня, 21:09 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21056334][21056334] >... Тормозит-морозится интерфейс? ... Большое спасибо за вопрос - я в шоке и плакать, я туповат оказался - интерфейс морозится, причем, если уйду в окно другого приложения, назад вернуться не получается, пока работает асинхронный метод. Может быть дело в том, что работаю в виртуалке? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 21:49 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ViPRosДа я еще хуже считаю - я считаю NP полную задачу построения оптимального расписания. Почему ты не делаешь этого там, где это делать удобнее всего: на сервере, с кешированием и всеми делами? Там же максимально быстрый канал с БД, без накладок, без задержек, если это вообще не делать в самой БД. ViPRosНадо явно что бы можно было назначить поток для обслуживания задач ввода/вывода. зачем? ViPRosда, блин, синхронизация все равно нужна, есть неразделяемые объекты. В ДатаТейбл, допустим, фиг два потока запишут одновременно. ну да, пока один пишет, другие будут вынуждены ждать и продолжать пожирать удерживать поток и пожирать ресурсы. это мы ещё не затрагиваем тему GC, который может заблочить твои потоки.. ViPRosА вот если сделан был бы внутри ТПЛ автоматически не плодить потоки, если какой то поток ушел в I|O то было бы хорошо, но нифига такого нету. почему это нет? есть.. просто как только ты введёшь асинки, придётся переходить на семафоры для синхронизации потоков. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 21:49 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеев>Petro123,сегодня, 21:09 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21056334][21056334] >... Тормозит-морозится интерфейс? ... Большое спасибо за вопрос - я в шоке и плакать, я туповат оказался - интерфейс морозится, причем, если уйду в окно другого приложения, назад вернуться не получается, пока работает асинхронный метод. Может быть дело в том, что работаю в виртуалке? Ну, я так и думал, раз таймер не работает. Ты наверно ни разу не видел как часы компа не тикают когда зип файл зипуешь). ... Вопросы то остались - БЕЗ СТРОКИ ЗАМОРОЗКИ JAVA В БД - РАБОТАЕТ? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 22:01 |
|
C# async... await
|
|||
---|---|---|---|
#18+
hVosttViPRosДа я еще хуже считаю - я считаю NP полную задачу построения оптимального расписания. Почему ты не делаешь этого там, где это делать удобнее всего: на сервере, с кешированием и всеми делами? Там же максимально быстрый канал с БД, без накладок, без задержек, если это вообще не делать в самой БД. Первым делом так и было сделано - на сервере через CLR. Но, сервер не пригоден для вычислений, тем более - графовых. Сделал на сервере через CLR, получился однопоточная фигня медленная. А тут тоже нет никаких накладок, задержек, а кешировать можно везде. Ну, вощем, у меня нет проблем для обсуждения пока по части расчетов (в свое время - лет 7 назад были и я обращался по части оптимизации СКЛ запросов и люди помогали). Быстрее и лучше меня никто пока что не считает из конкурентов. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 22:11 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ViPRos, - на сервере через хранимки - ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 22:12 |
|
C# async... await
|
|||
---|---|---|---|
#18+
>Petro123, сегодня, 22:01 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21056461][21056461] >...Вопросы то остались... У меня база данных отладочного комплекса на другой виртуалке. На ней нет данных для долгоиграющего запроса. Приходится использовать java. Но для await Task.Run всё работает и в случае задержки. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 22:21 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеев>Petro123, сегодня, 22:01 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21056461][21056461] >...Вопросы то остались... У меня база данных отладочного комплекса на другой виртуалке. На ней нет данных для долгоиграющего запроса. Приходится использовать java. Но для await Task.Run всё работает и в случае задержки. У тебя удивительная способность не отвечать на вопрос. Не только мне, но и например, refreg допросился логи со второго раза. ... Дак работает без той строки? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 22:44 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеев, объясняю сразу в надцатый раз. Я думаю что нельзя тестировать асинхронность ДРАЙВЕРА таким методом как у тебя. Выше писал что генерация данных в оракле это одно sql выражение. Если не знаешь как - спроси. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 22:57 |
|
C# async... await
|
|||
---|---|---|---|
#18+
>Petro123, сегодня, 22:44 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21056587][21056587] >...Дак работает без той строки? Странный вопрос, а что именно работает? - если таймер, то нет ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 23:06 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеевСтранный вопрос, а что именно работает? - если таймер, то нет я это и спрашивал. Т.е. есть та строка или нет - таймер не работает в обоих случаях. Второй вопрос - выше ссылку на код Алексея видел? Дело твоё, но можешь проверить его код. Если не работает, то у тебя нет вариантов - мой вариант из моего проекта или твой await-вариант. Логично? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 23:16 |
|
C# async... await
|
|||
---|---|---|---|
#18+
>Petro123, сегодня, 22:57 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21056621][21056621] >...Я думаю что нельзя тестировать асинхронность ДРАЙВЕРА таким методом как у тебя. Причем здесь ДРАЙВЕР - я задерживаю выполнение хранимки. Да и какая нахрен разница - можно запустить любой асинхронный метод без применения await Task.Run - метод таймера не работает, как не работает любой другой метод обработки сообщения, за исключением асинхронного. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 23:18 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеевПричем здесь ДРАЙВЕР - я задерживаю выполнение хранимки. уже ни при чём. Ты долго отвечаешь на вопросы. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 23:20 |
|
C# async... await
|
|||
---|---|---|---|
#18+
OFF Ну а если поболтать, только ты не отвлекайся)), то БД строит план выполнения запроса, потом подымает кэш. Если ты тормознул процесс, то он не даст на клиента ничего как раз эти 15 сек. Но ты не отвлекайся). ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 23:25 |
|
C# async... await
|
|||
---|---|---|---|
#18+
>Petro123, сегодня, 23:16 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21056663][21056663] >...Логично? ... Логично. Можно использовать Task.Wait(TimeSpan), но лишняя возня. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 23:29 |
|
C# async... await
|
|||
---|---|---|---|
#18+
>Petro123, сегодня, 23:25 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21056684] [21056684] >...Если ты тормознул процесс, то он не даст на клиента ничего как раз эти 15 сек... Так это мне и надо - ПрогресБар покажет полоску в 15 секунд - время выполнения хранимки ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 23:33 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеевМожно использовать Task.Wait только не приставай ко мне с этим старьём)). Я сразу на новое прыгнул). ... ВМоисеевТак это мне и надо - ПрогресБар покажет полоску в 15 секунд - время выполнения хранимки какой ты тупой! 15 сек не возвращается код в клиента от БД т.к. там стоит sleep() Код ушёл в драйвер и БД. Ни разу не видел? Сделай код от Алексея. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 23:38 |
|
C# async... await
|
|||
---|---|---|---|
#18+
>Petro123, сегодня, 23:38 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21056703] [21056703] >...какой ты тупой! Ну какой же ты тупой. Счет секундам(времени) ведет таймер приложения и его счетчик показывает ПрогресБар. Каждую секунду полоска увеличивается. Для этих целей мне по барабану, что хранимка пока не отвечает, как ответит - остановлю таймер, скрою ПрогресБар и начну обработку списка сущностей. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 23:54 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеевмне по барабану, что хранимка пока не отвечает, сделай dll c кодом sleep() или циклом for 0 - 100000 И запусти из exe шника. Будет таймер показывать на экране? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2017, 00:00 |
|
C# async... await
|
|||
---|---|---|---|
#18+
Petro123 Сделай код от Алексея. и не OFFTOP про теорию потоков ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2017, 00:02 |
|
C# async... await
|
|||
---|---|---|---|
#18+
В Oracle для задержки есть родной DBMS_LOCK.SLEEP(seconds IN NUMBER). ВМоисеев>ВМоисеев, сегодня, 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2017, 00:08 |
|
C# async... await
|
|||
---|---|---|---|
#18+
>Petro123, сегодня, 00:00 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21056756] [21056756] >...Будет таймер показывать на экране? Твой пример не связан с вводом/выводом ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2017, 00:16 |
|
C# async... await
|
|||
---|---|---|---|
#18+
Попробуй поменять методы в wsp так: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
Вызов прежний: Код: c# 1.
Таймер должен заработать. ВМоисеевКоллеги, помогите разобраться. Разрабатываю приложения работы с базой данных Oracle. Запросы могут быть долгоиграющими, поэтому на время его выполнения подключаю таймер и отражаю время в прогресс баре. - Ситуация 1: здесь и далее - await wsp.Entity_SP(ИмяХП, sp, asp, RowToEntity);- вызов хранимой процедуры Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
======= ПрогрессБар не работает. - Ситуация 2: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
======= ПрогрессБар штатно. Дискуссия состоялась здесь ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2017, 00:38 |
|
C# async... await
|
|||
---|---|---|---|
#18+
>Petro123, сегодня, 00:00 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21056756][21056756] >...Будет таймер показывать на экране? Ваш вопрос возбудил смутные подозрения, а асинхронны ли асинхронные методы девартовского дравера. Попробую подергать асинхронные методы SQL Server- а ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2017, 09:38 |
|
C# async... await
|
|||
---|---|---|---|
#18+
SirYouGinПопробуй поменять методы в wsp так: То что task.run работает, он знает с 1 страницы. Он так не хочет. 2.Не цитируй много текста. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2017, 12:16 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеевПопробую подергать асинхронные методы SQL Server- адавно пора. Приходи через полгода как в прошлый раз. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2017, 12:18 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеев>Petro123, сегодня, 00:00 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21056756][21056756] >...Будет таймер показывать на экране? Ваш вопрос возбудил смутные подозрения, а асинхронны ли асинхронные методы девартовского дравера. Попробую подергать асинхронные методы SQL Server- аМда... Наконец-то, я же именно это у тя и хотел проверить, когда просил о выводе Debug.Output... И про то, что драйвер может быть не-асинхронный, несмотря на постфикс "Async", говорилось несколько раз. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2017, 14:25 |
|
C# async... await
|
|||
---|---|---|---|
#18+
hVosttrefregВкусовщина. А я считаю что дополнительная обязанность (восстановление контекста), должна прописываться явно , А по-умолчанию, отключена Как же я ненавижу слово «вкусовщина», у меня иногда такое ощущение складывается, что некоторые программеры считают, что они на показе мод. Вот здесь в рюшечку, здесь в цветочек. Какая ещё вкусовщина, вы чего вообще? Что касается восстановление контекста, если хорошенько погуглить, можно найти развёрнутые пояснение к такому дизайну и на стеке и в блогах майкрософт. И там вряд ли вы найдёте хоть один намёк на «вкусовщину». Даже у профессиональных дизайнеров «фломастеры» считается грязным ругательством, а тут повсеместно.. ну как так-то? ))Что-то тя понесло, всегда есть договоренности, компромиссы, неоднозначности - это если у тя реакция именно на это слово. Неоднозначных решений очень много. Например, почему DateTime.Now - это свойство, а не метод. Да и сам ты недавно из штанов выпрыгивал по поводу, как в .net сделаны потоки (stream). ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2017, 14:33 |
|
C# async... await
|
|||
---|---|---|---|
#18+
>ВМоисеев, 19 дек 17, 19:41 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21046801][21046801] Для Microsoft SQL Server ПрогресБар работает штатно и для Ситуации 1 и для Ситуации 2 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2017, 17:47 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеев>ВМоисеев, 19 дек 17, 19:41 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21046801][21046801] Для Microsoft SQL Server ПрогресБар работает штатно и для Ситуации 1 и для Ситуации 2 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2017, 18:11 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ВМоисеев>ВМоисеев, 19 дек 17, 19:41 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21046801][21046801] Для Microsoft SQL Server ПрогресБар работает штатно и для Ситуации 1 и для Ситуации 2 Тогда, возможно, стоит попробовать родные компоненты от Oracle http://www.oracle.com/technetwork/topics/dotnet/index-085163.html ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2017, 18:26 |
|
C# async... await
|
|||
---|---|---|---|
#18+
SirYouGin, странно что он до сих пор не пробовал. Ещё со времён ADO\MDAC для оракла берут родные дрова. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2017, 18:31 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ViPRosПервым делом так и было сделано - на сервере через CLR. Но, сервер не пригоден для вычислений, тем более - графовых. Сделал на сервере через CLR, получился однопоточная фигня медленная. Ну фиг его знает... я как-то делал расчёт расписания для врачей, поиск оптимального времени для записи, при чём надо было искать среди огромной кучи постоянно меняющихся временных интервалов, с учётом пожелания клиента: строгий и мягкий учёт, типа +/- и куча атрибутов, учёт пожелания врачей и группировка по направлениям, и весу. В начале делал через графы. Это было медленно. Нашёл как оптимизировать, это работало быстро, но такой код невозможно сопровождать, поддерживать и тестировать. Такие решения я сразу отправляю в утиль. Переделал на избыточность в данных, получилось решение чисто на SQL запросах, без хранимых процедур, пздца в коде без параллельных вычислений, работает молниеносно и легко поддерживается. Вообще, избыточность рулит. Именно поэтому я до беспамятства влюбился в CQRS/ES. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2017, 00:47 |
|
C# async... await
|
|||
---|---|---|---|
#18+
refregЧто-то тя понесло, всегда есть договоренности, компромиссы, неоднозначности - это если у тя реакция именно на это слово. Неоднозначных решений очень много. Например, почему DateTime.Now - это свойство, а не метод. Да и сам ты недавно из штанов выпрыгивал по поводу, как в .net сделаны потоки (stream). У меня реакция такая. Когда пойдёшь к врачу и он тебе операцию на желудок будет делать через глаз, потому что это, ну знаешь, вкусовщина, я посмотрю на реакцию. Здесь так же, для каждого выбранного решения должна быть определённая причина. Вкусовщина, это детский сад. Даже у определённых стилей наименования переменных, для выбора отступов, в каждой адекватной конторе есть определённые правила, и вкусовщина нихрена не катит. Я со многими решениями, сделанными в FCL не согласен. Но также я понимаю, что если бы сам его проектировал с нуля, то наделал бы много косяков, от ошибок проектирования никто не застрахован, просто тогда для решения нехватало данных и опирались на то, что есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2017, 00:52 |
|
C# async... await
|
|||
---|---|---|---|
#18+
OFF hVosttя до беспамятства влюбился в CQRS/ES. ты осторожнее с любовью. Этот принцип проектирования, который ставит на уши всю систему, имеет много противопоказаний. Лучше бы ты парочку технологий любил. Как истинный самец (с) ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2017, 10:13 |
|
C# async... await
|
|||
---|---|---|---|
#18+
Petro123, серебряной пули не существует, я знаю ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2017, 20:35 |
|
C# async... await
|
|||
---|---|---|---|
#18+
hVosttНу фиг его знает... я как-то делал расчёт расписания для врачей, поиск оптимального времени для записи, при чём надо было искать среди огромной кучи постоянно меняющихся временных интервалов, с учётом пожелания клиента: строгий и мягкий учёт, типа +/- и куча атрибутов, учёт пожелания врачей и группировка по направлениям, и весу. В начале делал через графы. Это было медленно. Нашёл как оптимизировать, это работало быстро, но такой код невозможно сопровождать, поддерживать и тестировать. Такие решения я сразу отправляю в утиль. Переделал на избыточность в данных, получилось решение чисто на SQL запросах, без хранимых процедур, пздца в коде без параллельных вычислений, работает молниеносно и легко поддерживается. Вообще, избыточность рулит. Именно поэтому я до беспамятства влюбился в CQRS/ES. И че там оптимизировал то? Скорее ранжировал. Избыточность тоже надо сначала рассчитывать (предвычисления), хорошо когда эта информация не теряет актуальности относительно долго (это обычно не так). Если бы можно был оптимизационную задачу решить "молниеносно", то ты бы был миллиардером. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2017, 22:10 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ViPRosИзбыточность тоже надо сначала рассчитывать (предвычисления), хорошо когда эта информация не теряет актуальности относительно долго (это обычно не так). Информация не теряет актуальности, почитай про Event Sourcing. ViPRosЕсли бы можно был оптимизационную задачу решить "молниеносно", то ты бы был миллиардером. Да с фига ли. Ты же решил как-то, чё стал миллионером? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2017, 23:23 |
|
C# async... await
|
|||
---|---|---|---|
#18+
hVosttViPRosИзбыточность тоже надо сначала рассчитывать (предвычисления), хорошо когда эта информация не теряет актуальности относительно долго (это обычно не так). Информация не теряет актуальности, почитай про Event Sourcing. ViPRosЕсли бы можно был оптимизационную задачу решить "молниеносно", то ты бы был миллиардером. Да с фига ли. Ты же решил как-то, чё стал миллионером? Да при чем тут ES, как он может мне помочь раздобыть несуществующую информацию, обновить устаревшую? Ну, я эту задачу решал итерационно всю свою прогерскую жизнь и все еще тружусь - нескончаемая задача ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2017, 00:10 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ViPRosДа при чем тут ES, как он может мне помочь раздобыть несуществующую информацию, обновить устаревшую? вот если тебе лень почитать про ES, почему я должен тебе его пересказывать? он отвечает на твой вопрос. ViPRosНу, я эту задачу решал итерационно всю свою прогерскую жизнь и все еще тружусь - нескончаемая задача бестолковая задача. если работая с данными, ты не можешь всё свести к запросам, значит ты делаешь всё неправильно, и уже плевать насколько ты неправильное решение оптимизировал и распараллелил )) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2017, 00:32 |
|
C# async... await
|
|||
---|---|---|---|
#18+
hVosttбестолковая задача. если работая с данными, ты не можешь всё свести к запросам, значит ты делаешь всё неправильно, и уже плевать насколько ты неправильное решение оптимизировал и распараллелил )) открой теорию расписаний, выбери любую задачу и реши - тогда поговорим ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2017, 00:36 |
|
C# async... await
|
|||
---|---|---|---|
#18+
ViPRosоткрой теорию расписаний, выбери любую задачу и реши - тогда поговорим OLAP ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2017, 00:56 |
|
|
start [/forum/topic.php?all=1&fid=20&tid=1399554]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
59ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
270ms |
get tp. blocked users: |
2ms |
others: | 308ms |
total: | 679ms |
0 / 0 |