Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
brand
Зарегистрирован: 23.02.2003 Сообщения: 17
|
Добавлено: Вс Фев 24 2002 14:33 Заголовок сообщения: Почему в Билдере при запуске нового потока, основной поток останавливается? |
|
|
Сабж!!! Пишу программу, в которой выполняются длительные расчеты. Решил организовать дополнительный поток через объект TThread. Поток создается и запускается, но когда он работает основной поток не реагирует ни на какие события(мышь, клавиатура и т.д.). Подскажите, в чем может быть проблема? Заранее большое спасибо. |
|
Вернуться к началу |
|
|
ilya Гость
|
Добавлено: Вс Фев 24 2002 16:01 Заголовок сообщения: попробуй |
|
|
вставь это в цикл расчётов Это 'отпускает' messages Windows
MSG msg; while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) { TranslateMessage(&msg); DispatchMessage(&m.. |
|
Вернуться к началу |
|
|
ант Гость
|
Добавлено: Вт Фев 26 2002 00:35 Заголовок сообщения: Re: Почему в Билдере при запуске нового потока, основной поток останавливается? |
|
|
смотри http://www.winnt.rsm.org.ru/ |
|
Вернуться к началу |
|
|
Valera Гость
|
Добавлено: Вт Фев 26 2002 05:00 Заголовок сообщения: Re: Почему в Билдере при запуске нового потока, основной поток останавливается? |
|
|
Сдается мне что где-то ошибка. Вычисления у тебя выполняются в основном потоке. У меня на заре программирования подобное было. |
|
Вернуться к началу |
|
|
brand
Зарегистрирован: 23.02.2003 Сообщения: 17
|
Добавлено: Ср Фев 27 2002 01:00 Заголовок сообщения: Re: Почему в Билдере при запуске нового потока, основной поток останавливается? |
|
|
Да, нет, все вычисления выполняю во вспомогательном потоке. Единственное, где я схалтурил- это то, что использую в дополнительном потоке глобальные переменные(поленился переделывать) Сделал, как написал ilya(см. первый ответ)и все заработало. Хотя смотрел в билдеровских примерах программу, в которой производится сортировка массива 3-мя различными способами с помощью потоков и там не используется обработка очереди сообщений и все работает |
|
Вернуться к началу |
|
|
Valera Гость
|
Добавлено: Ср Фев 27 2002 04:00 Заголовок сообщения: Re: Почему в Билдере при запуске нового потока, основной поток останавливается? |
|
|
Я никогда не использовал обработку очереди в потоках. Очередь сообщений обрабатывается основным потоком. я не могу вспомнить по какому случаю у меня был подобный глюк. Если вдруг вспомню, напишу. |
|
Вернуться к началу |
|
|
|