Автор
|
Тема: Прерывание циклов
|
MrSergei |
опубликован 01-12-2001 03:20 MSK
Какая функция или макрос отвечает за прерывание любого цикла? Наподобие Application.ProcessMessages в Дельфях. Т.е. чтобы во время выполнения долгого цикла в программе можно было бы активизировать любой компонент интерфейса этой же программы.
|
MadiSoft
|
опубликован 01-12-2001 08:45 MSK
Создай отдельный Thread и засунь туда свой цикл. |
stan
|
опубликован 01-12-2001 11:09 MSK
Что то типа if(PeekMessage(...)) DispatchMessage(); |
Demo_S
|
опубликован 02-12-2001 19:23 MSK
за слова свои не отвечаю, сам не пробовал, но в похожем случае советовали Sleep(0); |
DenizK
|
опубликован 03-12-2001 08:33 MSK
Попробуй такMSG msg; while (::PeekMessage(&msg, NULL, NULL, NULL, PM_NOREMOVE)) AfxGetThread()->PumpMessage(); |
Sourcer
|
опубликован 03-12-2001 10:49 MSK
Оно? while(1) { if(условие для выхода) break; }
|
zhevak
|
опубликован 06-12-2001 04:39 MSK
Эта -- не проблема, если посмотреть на задачу глазами Джеффри Рихтера -- имеете долгоиграющий процесс, тогда сам Бил Гейтс велел организовать отдельную нить (поток) для него. |
DenizK
|
опубликован 06-12-2001 22:55 MSK
>>to zhevak Согласен с тобой и с Рихтером:-). Только при таком подходе подходе начинают возникать проблемы с синхронизвацией. Имхо порождение нового потока в любой ситуации не есть панацея. Бывает, что можно использовать что нибудь другое (например асинхронный ввод-вывод). |
zhevak
|
опубликован 07-12-2001 00:29 MSK
For DenizK ------------- А я и не говорю, что это панацея. Просто так наиболее "технологично" будет писать под виндами. А насчет синхронизации потоков, так там уже много всего напридумано. Жаль, до нас уже придумали... :(Zh |
DenizK
|
опубликован 07-12-2001 11:34 MSK
>> to zhevak Да я вообщем то и не спорю с этим:-) Просто на создание потоков и на переключение контекстов к сожалению тратится время. Предыдущее моё сообщение относилось побольшей части к операциям ввода-вывода, где я обычно использую асинхронный ввод-вывод. Имхо при этом порождение нового потока не будет оптимальным решением с точки зрения производительности. Да и Рихтер имхо придерживается похожей точки зрения. |