|
Проблема с потоками
|
|||
---|---|---|---|
#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 |
|
Проблема с потоками
|
|||
---|---|---|---|
#18+
Roman Mejtes, да ладно Вам, я задал конкретный вопрос, он просто ответил по сути. На примере проще разобраться, я понимаю что awaite приостанавливает выполнение кода до выполнения потока, я просто не мог понять куда его поставить, потому что не присваивал кнопке свойсво async ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2018, 22:50 |
|
Проблема с потоками
|
|||
---|---|---|---|
#18+
OlegEgorov11, писать то может и проще, но если вы не понимаете, что пишите, это плохая практика. проще, не всегда лучше. Если вы не понимаете ту или иную технологию, то лучше воспользоваться той, которую вы понимаете. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2018, 22:51 |
|
Проблема с потоками
|
|||
---|---|---|---|
#18+
Roman Mejtesчто это по сути только сахар для TPL серьёзно? ну это же неправда. Roman MejtesЗатем разобраться с синхронизацией в многопоточных приложениях, мониторы, симафоры, Read\Write локеры и прочие способы. стандартное уже классическое клише непонимание разницы между многопоточностью и асинхронность. приехалит. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2018, 22:52 |
|
Проблема с потоками
|
|||
---|---|---|---|
#18+
OlegEgorov11, вы не понимаете, как работает await, всё, что могу сказать вам по этому поводу :) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2018, 22:52 |
|
Проблема с потоками
|
|||
---|---|---|---|
#18+
OlegEgorov11hVostt, вообще у меня почти готовая программа, которая по нажатию кнопки создает в sql таблицы, наполняет их и выгружает в файл. У меня проблема была с зависанием формы, мне необходимо было сделать чтобы прогресс бар один бегал, второй заполнялся по значениям которые я ему присваиваю. Вот тот который бегает, не бегал, так как форма зависала. Вы говорите, что с BackgroundWorker в принципе можно решить эту проблему? если не собираетесь использовать асинхронный апи (TAP) при работе с СУБД и файлами, то да. вам поможет BackgroundWorker. можно и запускать потоки через Task.Run, но в WinForms есть уже готовые средства, которые решают это задачу и решали ещё 10 лет назад. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2018, 22:55 |
|
Проблема с потоками
|
|||
---|---|---|---|
#18+
OlegEgorov11в принципе, async\awaite проще писать да. Этого и MS хотел. Чтобы новички не пугались шарп кода))). OlegEgorov11для async\awaite необходим net framework 4.5 вроде с 2012 года. Мало? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2018, 22:55 |
|
Проблема с потоками
|
|||
---|---|---|---|
#18+
Petro123Если получится в три минуты и просто рассказать почему фигня, то велкам. Думаю, не получится. ты просишь объяснить, почему не нужно забивать гвозди микроскопом, потому что «смотри, как лихо у меня получается». даже стараться не буду. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2018, 22:56 |
|
Проблема с потоками
|
|||
---|---|---|---|
#18+
Roman Mejtes, Проблема в том, что я не первый день только делаю это, а vs работаю вторую неделю, но я быстро учусь ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2018, 22:59 |
|
Проблема с потоками
|
|||
---|---|---|---|
#18+
hVosttPetro123Если получится в три минуты и просто рассказать почему фигня, то велкам. Думаю, не получится. ты просишь объяснить, почему не нужно забивать гвозди микроскопом, потому что «смотри, как лихо у меня получается». даже стараться не буду. на том и расходимся) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2018, 23:00 |
|
Проблема с потоками
|
|||
---|---|---|---|
#18+
hVosttOlegEgorov11hVostt, вообще у меня почти готовая программа, которая по нажатию кнопки создает в sql таблицы, наполняет их и выгружает в файл. У меня проблема была с зависанием формы, мне необходимо было сделать чтобы прогресс бар один бегал, второй заполнялся по значениям которые я ему присваиваю. Вот тот который бегает, не бегал, так как форма зависала. Вы говорите, что с BackgroundWorker в принципе можно решить эту проблему? если не собираетесь использовать асинхронный апи (TAP) при работе с СУБД и файлами, то да. вам поможет BackgroundWorker. можно и запускать потоки через Task.Run, но в WinForms есть уже готовые средства, которые решают это задачу и решали ещё 10 лет назад. Ну у меня получается асинхронное, так как выполняются запросы на sql servere? или все таки многопоточное? Можете объяснить на примере: программа выполняет два sql запроса и выгружает данные в файл? sql запросы и выгрузка выполняются в отдельном потоке, в основном только элементы формы ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2018, 23:03 |
|
Проблема с потоками
|
|||
---|---|---|---|
#18+
OlegEgorov11, у SqlConnection, SqlCommand и SqlReader'а, которые вы используйте уже есть асинхронные методы поддерживающие шаблон TAP, обычно такой метод оканчивается названием Async connection.OpenAsync command.ExeucteReaderAsync reader.ReadAsync если все эти методы запускать через await, то проблем и гемороя с созданием каких то там потоков и прочего дерьма у вас не возникнет. просто надо использовать асинхронные методы, а не синхронные. Всё уже готово, самостоятельно городить потоки и прочее нет смысла, так как велосипед уже существует. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2018, 23:07 |
|
Проблема с потоками
|
|||
---|---|---|---|
#18+
Roman MejtesOlegEgorov11, вы не понимаете, как работает await, всё, что могу сказать вам по этому поводу :) В чем моя ошибка? можете объяснить на примере? или кинуть ссылку по теме? awaite же только приостанавливает выполнение потока, чтобы у программы была возможность подождать значения которое вернет поток, для этого применяем awaite, ведь так же? на пример если в потоке проходят вычисления которые нужны для дальнейшей работы программы, используем awaite и ждем вычислений от потока, продолжаем выполнение программы с данными от потока, я прав? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2018, 23:08 |
|
Проблема с потоками
|
|||
---|---|---|---|
#18+
Roman MejtesOlegEgorov11, у SqlConnection, SqlCommand и SqlReader'а, которые вы используйте уже есть асинхронные методы поддерживающие шаблон TAP, обычно такой метод оканчивается названием Async connection.OpenAsync command.ExeucteReaderAsync reader.ReadAsync если все эти методы запускать через await, то проблем и гемороя с созданием каких то там потоков и прочего дерьма у вас не возникнет. просто надо использовать асинхронные методы, а не синхронные. Всё уже готово, самостоятельно городить потоки и прочее нет смысла, так как велосипед уже существует. просто я еще использую утилиты cmd там, не только sql ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2018, 23:09 |
|
Проблема с потоками
|
|||
---|---|---|---|
#18+
OlegEgorov11В чем моя ошибка? нет у тебя ошибки. OlegEgorov11так как выполняются запросы на sql servere? просто есть ещё вариант когда MyAsunc() выше есть прямо в драйвере СУБД. Тогда вы пишите: Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2018, 23:10 |
|
Проблема с потоками
|
|||
---|---|---|---|
#18+
Roman MejtesOlegEgorov11, у SqlConnection, SqlCommand и SqlReader'а, которые вы используйте уже есть асинхронные методы поддерживающие шаблон TAP, обычно такой метод оканчивается названием Async connection.OpenAsync command.ExeucteReaderAsync reader.ReadAsync если все эти методы запускать через await, то проблем и гемороя с созданием каких то там потоков и прочего дерьма у вас не возникнет. просто надо использовать асинхронные методы, а не синхронные. Всё уже готово, самостоятельно городить потоки и прочее нет смысла, так как велосипед уже существует. и там проблема с временными таблицами, нужно чтобы они были в пределах одного коннекта, то есть там наполняется временая таблица потом с ней работает cmd ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2018, 23:10 |
|
Проблема с потоками
|
|||
---|---|---|---|
#18+
OlegEgorov11Ну у меня получается асинхронное, так как выполняются запросы на sql servere? или все таки многопоточное? Можете объяснить на примере: программа выполняет два sql запроса и выгружает данные в файл? sql запросы и выгрузка выполняются в отдельном потоке, в основном только элементы формы асинхронное. но нужно, чтобы обращения к БД и записи файлов делались через методы с суффиксом Async. вы не желаете почитать документацию? или хотя бы статейки на хабре? https://habr.com/post/139734/ https://habr.com/post/261649/ ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2018, 23:11 |
|
Проблема с потоками
|
|||
---|---|---|---|
#18+
hVosttOlegEgorov11Ну у меня получается асинхронное, так как выполняются запросы на sql servere? или все таки многопоточное? Можете объяснить на примере: программа выполняет два sql запроса и выгружает данные в файл? sql запросы и выгрузка выполняются в отдельном потоке, в основном только элементы формы асинхронное. но нужно, чтобы обращения к БД и записи файлов делались через методы с суффиксом Async. вы не желаете почитать документацию? или хотя бы статейки на хабре? https://habr.com/post/139734/ https://habr.com/post/261649/ спасибо за ссылки, обязательно изучу ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2018, 23:12 |
|
Проблема с потоками
|
|||
---|---|---|---|
#18+
hVostt, на сколько я понял из всего вышесказанного я просто могу sql запрос запустить асинхронно, тогда форма не будет виснуть? не в отдельно потоке? но как быть с cmd? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2018, 23:14 |
|
Проблема с потоками
|
|||
---|---|---|---|
#18+
OlegEgorov11, асинхронный метод может выполняться и в основном потоке. У вас есть 2 асинхронных метода, которые вы запустили в 1 STA потоке. Сперва выполнилось 20% 1 метода, затем 30% второго, затем выполнился код формы (обработка сообщений (ввода), обновление картинки (rendering), потом вернулась к первому и выполнила еще 80%, а потом вернулась ко второму и выполнила еще 70%. Таким образом в 1 потоке, выполнилось 2 метода асинхронно, при этом еще выполнялся код вашей формы, который вроде как и не зависал, но методы выполнялись. Это если очень по простому описать, как будут выполняться 2 асинхронных метода одновременно в 1 потоке. Вам будет казаться, что они оба работают, но на самом деле они работаю "по очереди", вытесняя друг друга. А если вы запустите 2 потока, то они могут выполняться одновременно (при условии наличия 2 процессоров\ядер). ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2018, 23:25 |
|
Проблема с потоками
|
|||
---|---|---|---|
#18+
ну, а в синхронном варианте, вы запустили метод 1 и пока он не вернет управление, туда от куда был вызван, выполнение кода формы не будет, то есть обработка сообщений, рендеринг не будут выполняться. Так как будет ожидаться завершение метода. и форма зависнет ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2018, 23:27 |
|
Проблема с потоками
|
|||
---|---|---|---|
#18+
Roman Mejtes, для новичка такое сложное объяснение не подходит. Увы. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2018, 23:28 |
|
Проблема с потоками
|
|||
---|---|---|---|
#18+
OlegEgorov11hVostt, на сколько я понял из всего вышесказанного я просто могу sql запрос запустить асинхронно, тогда форма не будет виснуть? не в отдельно потоке? но как быть с cmd? Код: c# 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2018, 23:34 |
|
Проблема с потоками
|
|||
---|---|---|---|
#18+
OlegEgorov11hVostt, на сколько я понял из всего вышесказанного я просто могу sql запрос запустить асинхронно, тогда форма не будет виснуть? не в отдельно потоке? но как быть с cmd? Нет, не будет виснуть, так как операция будет выполнена асинхронно. Т.е. пока там БД «думает», основной поток может свободно обрабатывать UI. Отличается от Task.Run это тем, что не расходуется напрасно лишний поток и контексты переключения потоков. Т.е. так правильно. А Task.Run это костыль. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2018, 23:35 |
|
Проблема с потоками
|
|||
---|---|---|---|
#18+
Petro123 Код: c# 1. 2. 3. 4.
фигню написал. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2018, 23:36 |
|
Проблема с потоками
|
|||
---|---|---|---|
#18+
hVosttPetro123 Код: c# 1. 2. 3. 4.
фигню написал. нет. Не фигню. А точно по ТЗ автора топика)) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2018, 23:46 |
|
Проблема с потоками
|
|||
---|---|---|---|
#18+
Petro123нет. Не фигню. А точно по ТЗ автора топика)) await-ить надо всё ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2018, 00:02 |
|
Проблема с потоками
|
|||
---|---|---|---|
#18+
hVostt, await cmd.ExecuteNonQueryAsync(); если я таким образом запущу sql запрос, будет ли он выполняться асинхронно? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2018, 00:04 |
|
Проблема с потоками
|
|||
---|---|---|---|
#18+
OlegEgorov11cmd у cmd спроси. Судя по XXXXAsync() - будет. Если не наврал. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2018, 00:19 |
|
Проблема с потоками
|
|||
---|---|---|---|
#18+
OlegEgorov11hVostt, await cmd.ExecuteNonQueryAsync(); если я таким образом запущу sql запрос, будет ли он выполняться асинхронно? Да. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2018, 00:42 |
|
Проблема с потоками
|
|||
---|---|---|---|
#18+
Petro123OlegEgorov11cmd у cmd спроси. Судя по XXXXAsync() - будет. Если не наврал. не совсем понял ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2018, 00:46 |
|
Проблема с потоками
|
|||
---|---|---|---|
#18+
hVostt, тогда вопрос, если я запущу асинхронно sql запросы, форма виснуть не будет, но тогда они запустятся все разом, и cmd, таким образом все сломается, потому что следующим запросам нечего будет выгружать, потому что предыдущие не сделают ничего ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2018, 00:48 |
|
Проблема с потоками
|
|||
---|---|---|---|
#18+
OlegEgorov11но тогда они запустятся все разом Код: c# 1. 2. 3.
все три будут друг за другом но форма виснуть не будет. Это скрыто, но код возвращается назад каждый раз. ... Хорош теории - пробуй код! Удачи! ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2018, 01:06 |
|
Проблема с потоками
|
|||
---|---|---|---|
#18+
OlegEgorov11hVostt, тогда вопрос, если я запущу асинхронно sql запросы, форма виснуть не будет, но тогда они запустятся все разом, и cmd, таким образом все сломается, потому что следующим запросам нечего будет выгружать, потому что предыдущие не сделают ничего асинхронно это не параллельно. все будет выполнено по очереди. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2018, 01:19 |
|
Проблема с потоками
|
|||
---|---|---|---|
#18+
hVosttсегодня многие современные программы пишут в стиле async-first .это ты сам придумал термин или это уже устоявшаяся терминология? А вы пишете суффикс Async к названию каждого метода? А то получается webapi-аппликация чуть менее чем полностью состоит из асинхронных методов, включая методы контроллеров, есть ли смысл использовать суффикс? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2018, 13:01 |
|
Проблема с потоками
|
|||
---|---|---|---|
#18+
OlegEgorov11, тот код, который идет после выполнения асинхронного метода с Await будет выполнен по его завершению. Возврата не будет, будет переход. Ваш метод будет разбит на части, которые будут выполняться последовательно, после каждой операции с await, будет выполняться следующий блок, который написан в методе. Это всё равно, что написать var task = Task.Run(MyAsyncCode); task.ContinueWith(MyNextCode); грубо говоря ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2018, 14:01 |
|
|
start [/forum/topic.php?all=1&fid=20&tid=1399375]: |
0ms |
get settings: |
12ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
56ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
76ms |
get tp. blocked users: |
1ms |
others: | 303ms |
total: | 481ms |
0 / 0 |