116 / 117 / 52
Регистрация: 19.12.2014
Сообщений: 612
|
||||||
1 | ||||||
Асинхронный вызов метода - форма все равно подвисает09.05.2015, 17:35. Показов 4094. Ответов 11
Метки нет (Все метки)
Есть метод, в котором заполняется richtextbox, пытаюсь вызвать его асинхронно с помощью делегатов, но что то не выходит, вот код.
Ошибок никаких не выдает, но при выполнении все равно форма подвисает, пока метод не закончит свою работу
0
|
09.05.2015, 17:35 | |
Ответы с готовыми решениями:
11
Асинхронный вызов метода с параметрами Обновление окна по таймеру: форма все равно зависает Форма если не проходит проверку, все равно отправляет запрос Форма регистрации и логина по видео урокам - все равно не работает |
09.05.2015, 18:40 | 2 | |||||
Сообщение было отмечено lokilo как решение
Решение
Судя по вашему коду, это вполне естественно и ожидаемо.
А почему с делегатами, а не другие конструкции? Ради интереса, я так понимаю? Добавлено через 7 минут Вот рабочий пример. И да, объект типа IAsyncResult вам тут не нужен, поскольку метод ничего не возвращает (хотя кто как советует, кто-то говорит, что EndInvoke() лучше вызывать, а кто нет).
2
|
116 / 117 / 52
Регистрация: 19.12.2014
Сообщений: 612
|
||||||
09.05.2015, 19:18 [ТС] | 3 | |||||
Ну просто у меня VS 2010, а так понимаю введение аsync начинается с VS 2012?
Просто нашел через делегаты, ну и так же все примеры даны для консоли, а для winform так и не нашел нужных объяснений. Да и вроде бы еще ничего не встретил, если скажите еще какие то конструкции, то почитаю про них. Добавлено через 6 минут insite2012,
0
|
09.05.2015, 19:23 | 4 |
А зачем вам async? Я сам этими конструкциями не пользуюсь, поскольку работаю в 2010 Студии, но есть же классы Thread и Task.
Добавлено через 54 секунды Нет, это немного не то. Вы вообще всю конструкцию неверно построили. А это - просто маршалинг из пула потоков в поток UI.
0
|
116 / 117 / 52
Регистрация: 19.12.2014
Сообщений: 612
|
|
09.05.2015, 19:32 [ТС] | 5 |
insite2012, поверьте я не сразу сюда код выложил, а как только не переставлял, но потом подумал, раз такой код где то уже видел, то значит так и должно быть. А до использования лямбда выражений не дошло почему то
Thread использовал, я так понимаю только синхронно, да и то это еще только на примерах для себя, что так сказать изучить по больше и применять после так где это нужно и так сказать не обходиться без них, а заочно знать, как и где и что написать.
0
|
09.05.2015, 19:34 | 6 |
Это типа методом научного тыка?)))
Возьмите книгу Троелсена, раздел по потокам. Там это все подробно расписано. Использование делегатов (для асинхронного вызова) и все остальное. Это как? Покажите пример как использовали))
0
|
116 / 117 / 52
Регистрация: 19.12.2014
Сообщений: 612
|
||||||
09.05.2015, 19:42 [ТС] | 7 | |||||
insite2012,
Совершенно верно, просто то там что то подсмотришь, то тут, там подставишь это, сюда переставишь
Ну вот как делал с помощью Thread но опять же это в консоле, и да ошибся, на тот момент когда я это делал, не думал о вещах синхронность и асинхронность, я сейчас подвигал окно консоли, а оно не зависает)
0
|
116 / 117 / 52
Регистрация: 19.12.2014
Сообщений: 612
|
||||||
09.05.2015, 19:48 [ТС] | 9 | |||||
insite2012, хорошо, буду стараться так и делать
Добавлено через 1 минуту insite2012, вот не отходя от темы
0
|
116 / 117 / 52
Регистрация: 19.12.2014
Сообщений: 612
|
|||||||||||
09.05.2015, 19:56 [ТС] | 11 | ||||||||||
insite2012,
И да конечно же нужно будет правильно завершить поток. Вот так правильно будет?
0
|
09.05.2015, 19:57 | 12 |
Да конечно возможно, только кода будет больше, только и всего. Можно вообще отдельный метод сделать))
Почитайте ту книгу что я вам посоветовал, там это все рассматривается.
0
|
09.05.2015, 19:57 | |
09.05.2015, 19:57 | |
Помогаю со студенческими работами здесь
12
Полиморфизм: вызов метода базового класса, переопределенного метода и нового метода Если форма вдруг закрылась то поток все равно долбится к ликвидированному объекту Асинхронный вызов Асинхронный вызов функции Асинхронный вызов httpWebResponse Правильный асинхронный вызов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |