|
Прошу научить запускать таски на VB.NET
|
|||
---|---|---|---|
#18+
Приветствую присутствующих. Я как бы не совсем чайник, но чувствую себя полным нулем в тасках. Есть процедура, которая берет DataRow как параметр и должна запускаться асинхронно: Код: vbnet 1. 2. 3.
Есть цикл, который ее должен вызвать: Код: vbnet 1. 2. 3. 4.
Вопрос 1. Как сюда вставить передачу параметра dr? Вопрос 2. У меня еще светится сообщение, что в процедуре OneRecord отсутствуют операторы Await и поэтому она не будет запускаться асинхронно. Куда вставлять Await? Пытался читать старые обсуждения, но ничего там не понял. Заранее спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2018, 16:17 |
|
Прошу научить запускать таски на VB.NET
|
|||
---|---|---|---|
#18+
Владимир Саныч, Весь цикл в асинхронную процедуру. Передать туда строку коннекта. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2018, 17:19 |
|
Прошу научить запускать таски на VB.NET
|
|||
---|---|---|---|
#18+
Без Await и прочих Async можно так Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2018, 17:35 |
|
Прошу научить запускать таски на VB.NET
|
|||
---|---|---|---|
#18+
Ах да. Переводчик Код: vbnet 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2018, 17:43 |
|
Прошу научить запускать таски на VB.NET
|
|||
---|---|---|---|
#18+
WebPrjВесь цикл в асинхронную процедуру. Передать туда строку коннекта. И цикл будет переходить к следующей записи, не дожидаясь обработки предыдущей??? Cat2 Переводчик О, это очень ценная штука, спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2018, 17:54 |
|
Прошу научить запускать таски на VB.NET
|
|||
---|---|---|---|
#18+
Владимир СанычИ цикл будет переходить к следующей записи, не дожидаясь обработки предыдущей??? Да. Но надо учитывать, что в какой-то момент множество открытых потоков начинают тормозить ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2018, 18:03 |
|
Прошу научить запускать таски на VB.NET
|
|||
---|---|---|---|
#18+
Cat2Владимир СанычИ цикл будет переходить к следующей записи, не дожидаясь обработки предыдущей??? Да. Но надо учитывать, что в какой-то момент множество открытых потоков начинают тормозить Ой, это не к моему коду вопрос был. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2018, 18:04 |
|
Прошу научить запускать таски на VB.NET
|
|||
---|---|---|---|
#18+
Cat2Ой, это не к моему коду вопрос был. Таки да. Но "начинают тормозить" - это глобальная проблема. Я попробую поставить какой-нибудь Sleep, только бы он тоже не начал исполняться асинхронно... ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2018, 18:07 |
|
Прошу научить запускать таски на VB.NET
|
|||
---|---|---|---|
#18+
И еще вопрос. Локальные переменные, описанные в этой вызываемой асинхронно процедуре, у каждого вызова свои? Мне кажется, что одни и те же и разные вызовы затирают их друг другу. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2018, 18:14 |
|
Прошу научить запускать таски на VB.NET
|
|||
---|---|---|---|
#18+
Владимир СанычWebPrjВесь цикл в асинхронную процедуру. Передать туда строку коннекта. И цикл будет переходить к следующей записи, не дожидаясь обработки предыдущей??? Смотря что надо. В одном случае будет переключение контекста и создание кучи задач....забитие пула потоков. С другой стороны будет фоновое последовательное выполнение. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2018, 18:50 |
|
Прошу научить запускать таски на VB.NET
|
|||
---|---|---|---|
#18+
Владимир СанычCat2Ой, это не к моему коду вопрос был. Таки да. Но "начинают тормозить" - это глобальная проблема. Я попробую поставить какой-нибудь Sleep, только бы он тоже не начал исполняться асинхронно... Есть более изящные решения ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2018, 19:09 |
|
Прошу научить запускать таски на VB.NET
|
|||
---|---|---|---|
#18+
WebPrjСмотря что надо. Надо то, что сказано в исходном посте: запускать асинхронно процедуру, обрабатывающую отдельную запись. WebPrjВ одном случае будет переключение контекста и создание кучи задач....забитие пула потоков. А в другом? WebPrjС другой стороны будет фоновое последовательное выполнение. Это ровно то, что у меня было до того, как я стал пытаться использовать асинхронность. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2018, 21:49 |
|
Прошу научить запускать таски на VB.NET
|
|||
---|---|---|---|
#18+
Cat2Есть более изящные решения Например? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2018, 21:50 |
|
Прошу научить запускать таски на VB.NET
|
|||
---|---|---|---|
#18+
Владимир СанычЭто ровно то, что у меня было до того, как я стал пытаться использовать асинхронность. что то вы лукавите. Если одна задача с циклом внутри, то это один поток и готовая асинхронность. А вы говорите - это было ДО использования асинхронности. Любое решение это компромиссы. Если нужно запустить 100 микрозадачек на 100 строках то запускайте. AFAIK пул там на 50 максимуму и остальные 50 встанут в очередь. Делайте. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2018, 22:48 |
|
Прошу научить запускать таски на VB.NET
|
|||
---|---|---|---|
#18+
WebPrjЕсли одна задача с циклом внутри, то это один поток и готовая асинхронность. Записи обрабатывались последовательно. Надо параллельно. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2018, 23:15 |
|
Прошу научить запускать таски на VB.NET
|
|||
---|---|---|---|
#18+
Владимир Саныч, Чем задачки занимаются - рассчётами или вводом-выводом? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2018, 23:27 |
|
Прошу научить запускать таски на VB.NET
|
|||
---|---|---|---|
#18+
ИзопропилВладимир Саныч, Чем задачки занимаются - рассчётами или вводом-выводом? Передачей информации в другую систему. Процедура берет несколько чисел из одной записи, обращается с ними к другой системе, получает обратно несколько других чисел, заносит в ту же запись. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2018, 23:33 |
|
Прошу научить запускать таски на VB.NET
|
|||
---|---|---|---|
#18+
Владимир СанычWebPrjЕсли одна задача с циклом внутри, то это один поток и готовая асинхронность. Записи обрабатывались последовательно. Надо параллельно. я ответил - делайте. Только чтение потокобезопасно. Записывать нельзя без синхронизации. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2018, 23:38 |
|
Прошу научить запускать таски на VB.NET
|
|||
---|---|---|---|
#18+
Владимир СанычИзопропилВладимир Саныч, Чем задачки занимаются - рассчётами или вводом-выводом? Передачей информации в другую систему. Процедура берет несколько чисел из одной записи, обращается с ними к другой системе, получает обратно несколько других чисел, заносит в ту же запись. Для этого существует вариант - быстро читают коллекцию и передают коллекцию в другую систему. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2018, 23:46 |
|
Прошу научить запускать таски на VB.NET
|
|||
---|---|---|---|
#18+
WebPrjя ответил - делайте. Да-да, я именно потому и обратился сюда, что точно знаю, как делать, а вот делать или нет - не знал. Спасибо большое за этот очень ценный совет. Теперь буду знать: надо делать. Забыл поблагодарить Вас за предыдущую реплику, заставил повторять, извините. WebPrjДля этого существует вариант - быстро читают коллекцию и передают коллекцию в другую систему. А совет переписать ту систему вообще бесценен, еще раз спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2018, 00:46 |
|
Прошу научить запускать таски на VB.NET
|
|||
---|---|---|---|
#18+
Владимир Саныч Код: vbnet 1. 2. 3.
Настоятельно рекомендуется использовать async Task вместо async void (Async Sub) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2018, 05:59 |
|
Прошу научить запускать таски на VB.NET
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2018, 06:59 |
|
Прошу научить запускать таски на VB.NET
|
|||
---|---|---|---|
#18+
Владимир Саныч, Мы до тасков еще не дошли). Вы же написали что новичок. Теперь делаете пример с первой страницы. Именно без тасков. Ну а потом будут таски с возвратом. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2018, 07:16 |
|
Прошу научить запускать таски на VB.NET
|
|||
---|---|---|---|
#18+
Владимир СанычWebPrjя ответил - делайте. Да-да, я именно потому и обратился сюда, что точно знаю, как делать, а вот делать или нет - не знал. Спасибо большое за этот очень ценный совет. Теперь буду знать: надо делать. Забыл поблагодарить Вас за предыдущую реплику, заставил повторять, извините. WebPrjДля этого существует вариант - быстро читают коллекцию и передают коллекцию в другую систему. А совет переписать ту систему вообще бесценен, еще раз спасибо. Столько написали всего, а про запись в потоках промолчали. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2018, 07:20 |
|
Прошу научить запускать таски на VB.NET
|
|||
---|---|---|---|
#18+
Вот, добавил в код выше от Cat2. Подходит? И ничего тормозить не надо. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2018, 07:49 |
|
|
start [/forum/topic.php?fid=20&fpage=25&tid=1399127]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
85ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
2ms |
others: | 265ms |
total: | 456ms |
0 / 0 |