Каким образом прикрутить progress bar
От: Tee Moore  
Дата: 08.10.11 06:18
Оценка:
Отцы, подскажите пожалуйста.
Есть уже оптимизированный по скорость цикл, где обрабатываются данные. Нужно прикрутить прогресбар что бы было видно что процесс не весит и знать когда обсчет данных завершится.
Проблема в том что не хочется загружать цикл и увеличивать без того приличное время обсчета данных.
Цикл запускаю в отдельном процессе.
Первая мысль сделать что то типа этого:

int end  = 10000000; // это число будет меняться, для наглядность написал конкретное
int step = end/100;
for(int i=0; i<end; i++)
{
    .
    .
    if( i%step == 0 )
    {
       ::SendMessage( .. , (WPARAM)i, (LPARAM)end);
    }
}


Но мне не нравится, что утяжеляется цикл постоянным делением по модулю. И ещё может быть окно перегружено кучей сообщений.
Хотелось бы как то организовать что то типа опроса процесса например каждые 0.5 секунд и желательно без нагрузки на сам цикл.

Если кто знает в какую сторону капать подскажите пожалуйста.

PS Может перед началом цикла сообщать родителю указатели на i и end, а в самом родительском процессе по таймеру приостанавливать этот процесс чтобы посмотреть цыфирки i и end?
//
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.