27.04.2006, 12:06
|
#3
|
Участник
Регистрация: 28.11.2005
Адрес: Москва
|
Не обонвляется прогресс при большом uptime'е машины
Цитата:
Сообщение от Роман Кошелев
Добавлены кое-какие поля и статус-строка.
Огромное спасибо за замечательный проект! 
Единственная фигня, с которой я столкнулся, - это обновление информации о ходе работы. Фигня кроется в методе HB_LongOperation::UpdateInterface()X++: private void UpdateInterface(boolean bUpdateCtrls=true)
{
int curTime = WinApi::getTickCount();
// ...
if (curTime-prevTime>100)
{
form.task (#TaskUpdate);
prevTime = curTime;
}
} и заключается фигня в том, что возвращаемое значение DWORD GetTickCount() преобразуется в int (со знаком), в частности, на моей рабочей станции с uptime'ом чуть меньше месяца это значение получается равным -1786893875, а prevTime в самом начале работы равен 0, т.е. заведомо больше curTime в данной ситуации. Как следствие, form.task (#TaskUpdate) в этом методе при таких обстоятельствах никогда не вызывается, только градусник ползет...
|
|