WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  C / C++ / Visual C++
  Прерывание циклов

СПРОСИТЬ  ОТВЕТИТЬ
профайл | регистрация | faq

Автор Тема:   Прерывание циклов
MrSergei опубликован 01-12-2001 03:20 MSK   Click Here to See the Profile for MrSergei   Click Here to Email MrSergei  
Какая функция или макрос отвечает за прерывание любого цикла? Наподобие Application.ProcessMessages в Дельфях.
Т.е. чтобы во время выполнения долгого цикла в программе можно было бы активизировать любой компонент интерфейса этой же программы.
MadiSoft опубликован 01-12-2001 08:45 MSK     Click Here to See the Profile for MadiSoft  Click Here to Email MadiSoft     
Создай отдельный Thread и засунь туда свой цикл.
stan опубликован 01-12-2001 11:09 MSK     Click Here to See the Profile for stan  Click Here to Email stan     
Что то типа
if(PeekMessage(...))
DispatchMessage();
Demo_S опубликован 02-12-2001 19:23 MSK     Click Here to See the Profile for Demo_S  Click Here to Email Demo_S     
за слова свои не отвечаю, сам не пробовал, но в похожем случае советовали Sleep(0);
DenizK опубликован 03-12-2001 08:33 MSK     Click Here to See the Profile for DenizK  Click Here to Email DenizK     
Попробуй так

MSG msg;

while (::PeekMessage(&msg, NULL, NULL, NULL, PM_NOREMOVE))
AfxGetThread()->PumpMessage();

Sourcer опубликован 03-12-2001 10:49 MSK     Click Here to See the Profile for Sourcer  Click Here to Email Sourcer     
Оно?
while(1)
{
if(условие для выхода) break;
}
zhevak опубликован 06-12-2001 04:39 MSK     Click Here to See the Profile for zhevak  Click Here to Email zhevak     
Эта -- не проблема, если посмотреть на задачу глазами Джеффри Рихтера -- имеете долгоиграющий процесс, тогда сам Бил Гейтс велел организовать отдельную нить (поток) для него.
DenizK опубликован 06-12-2001 22:55 MSK     Click Here to See the Profile for DenizK  Click Here to Email DenizK     
>>to zhevak
Согласен с тобой и с Рихтером:-). Только при таком подходе подходе начинают возникать проблемы с синхронизвацией. Имхо порождение нового потока в любой ситуации не есть панацея. Бывает, что можно использовать что нибудь другое (например асинхронный ввод-вывод).
zhevak опубликован 07-12-2001 00:29 MSK     Click Here to See the Profile for zhevak  Click Here to Email zhevak     
For DenizK
-------------
А я и не говорю, что это панацея. Просто так наиболее "технологично" будет писать под виндами. А насчет синхронизации потоков, так там уже много всего напридумано. Жаль, до нас уже придумали... :(

Zh

DenizK опубликован 07-12-2001 11:34 MSK     Click Here to See the Profile for DenizK  Click Here to Email DenizK     
>> to zhevak
Да я вообщем то и не спорю с этим:-) Просто на создание потоков и на переключение контекстов к сожалению тратится время. Предыдущее моё сообщение относилось побольшей части к операциям ввода-вывода, где я обычно использую асинхронный ввод-вывод. Имхо при этом порождение нового потока не будет оптимальным решением с точки зрения производительности. Да и Рихтер имхо придерживается похожей точки зрения.

СПРОСИТЬ  ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.