![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 11 Всего: 45 |
-------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
| mrgloom |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
у меня был статик, когда функция была в классе, а без класса я статик не использовал и всё и так скомпилировалось. но я поспешил радоватся, ибо я попробовал на простом примере.
но когда я пытаюсь добавить обновление чисел на форме, всё опять виснет на WaitForSingleObject (который по кнопке пауза)
т.е. такое ощущение что это что то связано с механизмом работы DoDataExchange Это сообщение отредактировал(а) mrgloom - 10.7.2012, 16:32 |
||||||
|
|||||||
| feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 11 Всего: 45 |
А там наверняка сообщения в оконную процедуру используются? Так нельзя же тогда пользоваться простыми Wait-функциями, ибо тогда очередь сообщений не обрабатывается. Пользуйтесь MsgWaitForMultipleObjects... Добавлено через 1 минуту и 19 секунд И ещё: -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
| mrgloom |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
не очень понял, MsgWaitForMultipleObjects это вроде как не к тредам, а к сообщениям относится? раньше использовал, такой набросок найденный в сети, но честно говоря, не очень понимаю как это всё работает, потом решил переписать через треды, получается тут через треды нельзя? и меня не устроило, то что этот код хорошо работает, только если у нас итерация цикла маленькая, а так пользователю надо потстоянно жать на кнопку отмена(чтобы не пропустить момент), а надо нажал, программа подождала пока завершится текущая итерация(забокировав гуи).
|
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 32 Всего: 101 |
|
|||
|
||||
| feodorv |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 11 Всего: 45 |
Можно.
Не просто к сообщениям, а в том числе и к тем, которые обновляют форму. Вот кусок кода, который ждёт завершения потока, одновременно обрабатывая сообщения:
Добавлено через 1 минуту и 8 секунд Ой, пока искал код, baldina уже всё написал -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
||||
|
|||||
| mrgloom |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
спасибо, всё заработало.
только с теоретической точки зрения непонятно, почему сообщения лочили выполнение кода в треде. |
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 32 Всего: 101 |
они не лочили. просто окошко "подвисло", т.к. управляется сообщениями, а они не проходили. теперь мы их обработали, и стало все ок
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |