![]() |
|
|
![]()
|
|
| lv151 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 916 Регистрация: 11.2.2008 Репутация: нет Всего: 2 |
Обязательно нужно дождаться завершения потока, но из за while(!run) наблюдаются дикие тормоза. Как лучше поступить в моей ситуации? |
|||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: нет Всего: 26 |
WaitForSingleObject(event, 100);
замени 100 на INFINITE |
|||
|
||||
| lv151 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 916 Регистрация: 11.2.2008 Репутация: нет Всего: 2 |
То же самое.
Может быть дело в listCtrl? INFINITE - теряется "асинхронность". Это сообщение отредактировал(а) lv151 - 30.6.2009, 15:48 |
|||
|
||||
| lv151 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 916 Регистрация: 11.2.2008 Репутация: нет Всего: 2 |
Ничего не попадает в list. Точнее нет, через некоторое время приложение просыпается и строки добавляются в CListBox, но с тормозами и отрисовывается только скролл от него Это сообщение отредактировал(а) lv151 - 30.6.2009, 16:17 |
|||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: нет Всего: 26 |
эм... твой код ждет в WaitForSingleObject только 1 раз
остальное время там просто бесконечный цикл |
|||
|
||||
| voov |
|
|||
![]() Патамушта мы пилоты ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 29.11.2007 Репутация: 8 Всего: 8 |
||||
|
||||
| lv151 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 916 Регистрация: 11.2.2008 Репутация: нет Всего: 2 |
всё ок.
Изменил логику работы с потоком. Получилось так, что в основном потоке был цикл, в теле которого и запускался поток.
в одном из топиков у меня проблема с передачей контрола СlistCtrl в поток. AfxBeginThread(ThreadProc, listCtrl); .... WaitForSingleObject(event, INFINITE); - Проблема в том, что я ожидал события, которое SetEvent-ось в функции потока. Висло в этом месте: ... { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, LB_ADDSTRING, 0, (LPARAM)lpszItem); } ... Сейчас я передаю его парента. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |