|
Проблема с потоками
|
|||
---|---|---|---|
#18+
Подскажите, как продолжить выполнения кода после завершения потока BackgroundWorker: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2018, 21:00 |
|
Проблема с потоками
|
|||
---|---|---|---|
#18+
OlegEgorov11, вам советовали Async\Await и свежие технологии по потокам. Игнорируете? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2018, 21:33 |
|
Проблема с потоками
|
|||
---|---|---|---|
#18+
Petro123, не могу в них разобраться, а это работает ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2018, 21:57 |
|
Проблема с потоками
|
|||
---|---|---|---|
#18+
М-да, отличный аргумент. При этом с BackgroundWorker вы тоже не можете разобраться. Какой смысл грызть кактус? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2018, 22:06 |
|
Проблема с потоками
|
|||
---|---|---|---|
#18+
OlegEgorov11не могу в них разобраться ничего сложного. Ты не пытался Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2018, 22:08 |
|
Проблема с потоками
|
|||
---|---|---|---|
#18+
Shocker.Pro, там я уже разобрался, просто через this.Invoke((Action)delegate передаю значения прогресс бару. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2018, 22:14 |
|
Проблема с потоками
|
|||
---|---|---|---|
#18+
Petro123OlegEgorov11не могу в них разобраться ничего сложного. Ты не пытался Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
В private Task MyAsync() я объявляю код, а по нажатию кнопки пишу: Код: c# 1. 2. 3. 4. 5.
Или где нужно объявлять этот await? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2018, 22:15 |
|
Проблема с потоками
|
|||
---|---|---|---|
#18+
Shocker.Pro, мне не понятно что делать с await. Как-бы с BackgroundWorker у меня все работает все как нужно, ну чтобы форма не висла и прогресс бары заполнялись, но студия мне пишет, что не плохо бы было ввести await, я не могу понять как его использовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2018, 22:18 |
|
Проблема с потоками
|
|||
---|---|---|---|
#18+
OlegEgorov11Shocker.Pro, мне не понятно что делать с await. Как-бы с BackgroundWorker у меня все работает все как нужно, ну чтобы форма не висла и прогресс бары заполнялись, но студия мне пишет, что не плохо бы было ввести await, я не могу понять как его использовать. Продолжайте использовать BackgroundWorker. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2018, 22:22 |
|
Проблема с потоками
|
|||
---|---|---|---|
#18+
OlegEgorov11, я понял свою ошибку, и сделал так: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
я не добавил ключевое слово async кнопке, теперь работает как я и хотел, но он выполняется два раза, почему? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2018, 22:23 |
|
Проблема с потоками
|
|||
---|---|---|---|
#18+
OlegEgorov11В private Task MyAsync() я объявляю код, код писать в месте где мой комментарий // код в потоке ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2018, 22:24 |
|
Проблема с потоками
|
|||
---|---|---|---|
#18+
hVostt, почему? я же хочу научиться ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2018, 22:24 |
|
Проблема с потоками
|
|||
---|---|---|---|
#18+
OlegEgorov11а по нажатию кнопки пишу: Код: c# 1. 2. 3. 4. 5.
нет. Как у меня выше. OlegEgorov11Или где нужно объявлять этот await? я вам уже всё написал. Только вставить код где мой коммент и повесить на стену в рамочку)) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2018, 22:26 |
|
Проблема с потоками
|
|||
---|---|---|---|
#18+
OlegEgorov11но он выполняется два раза, почему? в ButtonClick() должна быть только одна строка: await MyAsync(); больше ничего. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2018, 22:28 |
|
Проблема с потоками
|
|||
---|---|---|---|
#18+
Petro123, но это же так не работает... пишет 2 ошибки, 1 на ButtonsClick() - метод должен иметь тип возвращаемого значения, 2 - на await, что он должен использоваться только с Async ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2018, 22:29 |
|
Проблема с потоками
|
|||
---|---|---|---|
#18+
OlegEgorov11, Большое спасибо, так работает: Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2018, 22:31 |
|
Проблема с потоками
|
|||
---|---|---|---|
#18+
OlegEgorov11hVostt, почему? я же хочу научиться чему научиться? async/await имеет смысл использовать для асинхронных IO операций, запись/чтение файлов, обращения к БД (в том случае, если провайдер баз данных поддерживает асинхронный АПИ, например, провайдеры оракла не умеют). если заворачиваете что-то в async/await, значит ВСЁ внутри должно следовать этому паттерну. поэтому сегодня многие современные программы пишут в стиле async-first. поэтому давайте определяться. чему вы хотите научиться, и какой результат получить? от BackgroundWorker-а отказываться не стоит, он прекрасно решает свою задачу. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2018, 22:32 |
|
Проблема с потоками
|
|||
---|---|---|---|
#18+
Petro123в ButtonClick() должна быть только одна строка: await MyAsync(); больше ничего. такие советы как мёртвому припарка. человеку надо идти и доку курить, читать книжки, а не вставить await без малейшего понимания что он сделал. в формате форума этому не научить. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2018, 22:33 |
|
Проблема с потоками
|
|||
---|---|---|---|
#18+
OlegEgorov11 Код: c# 1. 2. 3. 4. 5. 6.
вот зачем человека фигне научили? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2018, 22:33 |
|
Проблема с потоками
|
|||
---|---|---|---|
#18+
OlegEgorov11на await, что он должен использоваться только с Async да Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2018, 22:35 |
|
Проблема с потоками
|
|||
---|---|---|---|
#18+
hVostt, вообще у меня почти готовая программа, которая по нажатию кнопки создает в sql таблицы, наполняет их и выгружает в файл. У меня проблема была с зависанием формы, мне необходимо было сделать чтобы прогресс бар один бегал, второй заполнялся по значениям которые я ему присваиваю. Вот тот который бегает, не бегал, так как форма зависала. Вы говорите, что с BackgroundWorker в принципе можно решить эту проблему? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2018, 22:37 |
|
Проблема с потоками
|
|||
---|---|---|---|
#18+
hVosttвот зачем человека фигне научили? это hello world за 3 минуты и просто для понимания. Что и сделал MS супротив Java своим await . .. Если получится в три минуты и просто рассказать почему фигня, то велкам. Думаю, не получится. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2018, 22:40 |
|
Проблема с потоками
|
|||
---|---|---|---|
#18+
hVosttasync/await имеет смысл использовать для асинхронных IO операций, запись/чтение файлов, обращения к БД (в том случае, если провайдер баз данных поддерживает асинхронный АПИ, например, провайдеры оракла не умеют). у меня работает и не в том случае. Когда нет поддержки никем ниже. Это обычный поток. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2018, 22:44 |
|
Проблема с потоками
|
|||
---|---|---|---|
#18+
Мне кажется, что неверно заставлять человека сразу разбираться в async\await, тем более, что это по сути только сахар для TPL. В первую очередь нужно разобраться, что такое TPL, как работать с Task'ами, что такое асинхронное выполнение, почему асинхронное выполнение не равно многопоточному. Затем разобраться с синхронизацией в многопоточных приложениях, мониторы, симафоры, Read\Write локеры и прочие способы. А потом уже переходить к async\await, иначе последний будет крайне непонятным. Если человек использует await, но не понимает, как это работает, что происходит после указания этого ключевого слова, будет много боли. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2018, 22:46 |
|
Проблема с потоками
|
|||
---|---|---|---|
#18+
Petro123, в принципе, async\awaite проще писать чем BackgroundWorker, я попробовал передать данные двум прогресс барам и у меня все получилось так как я хотел. Но еще один вопрос, когда я искал информацию по потокам, то где то видел что для async\awaite необходим net framework 4.5 и выше, так ли это? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2018, 22:48 |
|
|
start [/forum/topic.php?fid=20&msg=39643692&tid=1399375]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
51ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 155ms |
0 / 0 |