Почему то в длинном процессе на winXP прогресс не прогрессирует, просто «замерзает» на каком то положении. Процессор процессит (видно в Task Manager).
Как бороться?
Здравствуйте, gok, Вы писали:
gok>Почему то в длинном процессе на winXP прогресс не прогрессирует, просто «замерзает» на каком то положении. Процессор процессит (видно в Task Manager). gok>Как бороться?
Не совсем понятно, где и как выполняется "длинный процесс", и где и как изменяется содержимое прогресса?
На одной машине хр, на другой 2000. Одна и та же программка, подключена к windows Explorer, читает/записывает файлы. Градусник движется по мере чтения файла. В 2000 градусник нормально непрерывно движется вправо, на ХР застревает и експлорер не перерисовывается, хотя процесс нормально завершается.
Здравствуйте, gok, Вы писали:
gok>Почему то в длинном процессе на winXP прогресс не прогрессирует, просто «замерзает» на каком то положении. Процессор процессит (видно в Task Manager). gok>Как бороться?
XP считает процесс, не обрабатывающий сообщения в течении определенного времени (секунд пять) завмсшим, и все его окна заменяет фальшивкой — скриншотом этого окна. Чтобы этого избежать нужно обрабатывать сообщения во время длинной операции.
>прогресс не прогрессирует
улыбнуло
Это действительно так и есть!
А какие конкретно сообщения? У меня из dll подстегнутой к win Explorer создается mfc диалог (градусник как раз там) и крутится в цикле, пока задачка не закончится. Те такая постановка пьесы не проходит для Хрюши? Как бороться?
Здравствуйте, gok, Вы писали:
gok>А какие конкретно сообщения? У меня из dll подстегнутой к win Explorer создается mfc диалог (градусник как раз там) и крутится в цикле, пока задачка не закончится. Те такая постановка пьесы не проходит для Хрюши? Как бороться?
Вот в цикле и сделай обработку сообщений. mfc не знаю а в Delphi это делается Allpication.ProcessMessages