Как бороться с зависанием?

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Как бороться с зависанием?

Romeo » 11 апр 2005, 16:30

Либо делать вычесления в отдельном потоке, либо на каждой итерации в вычеслении делать прокачку сообщений.

Код: Выделить всё

while (::PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE))
{
	if (::GetMessage(&msg, NULL, 0, 0) > 0)
	{
		::TranslateMessage(&msg);
		::DispatchMessage(&msg);
	}
}

Hawk » 11 апр 2005, 09:09

Можно также после Invalidate вызвать UpdateWindow при этом окно переритсуется (обработается WM_PAINT) даже если вы не закончили работу в текущем обработчике события.

AiK » 10 апр 2005, 12:44

Делай вычисления в отдельном потоке.

Как бороться с зависанием?

iscan » 09 апр 2005, 21:45

или как передать управление окну (пишу на API).

например у меня в проге выполняются продолжительные вычисления, и пока они не закончатся прога не реагирует на InvalidateRect - ЗАВИСАЕТ.
Короче как с этим бороться?

Спасибо заранее.

Вернуться к началу