Eugie » 24 мар 2004, 19:07
Если у твоего приложение нет message loop, то обычный таймер работать вообще не будет. Дело в том, что TTimer - это просто дельфовая обертка для API-шного таймера, а он предполагает наличие очереди сообщений. Более того, TTimer реализует API-таймер, непосредственно связанный с окном (см.TTimer.Create).
Короче, здесь нужен другой вариант. Может, имеет смысл сделать свой таймер. Не знаю, как там в Линукс, но в Винде я бы использовал QueryPerformanceCounter в отдельном потоке. Опять же, в Винде есть еще несколько таймер-объектов, типа waitable timer (см. CreateWaitableTimer,...) и timer-queue timer (см. CreateTimerQueue,...), но здесь ничем помочь не могу - сам не юзал
Если у твоего приложение нет message loop, то обычный таймер работать вообще не будет. Дело в том, что TTimer - это просто дельфовая обертка для API-шного таймера, а он предполагает наличие очереди сообщений. Более того, TTimer реализует API-таймер, непосредственно связанный с окном (см.TTimer.Create).
Короче, здесь нужен другой вариант. Может, имеет смысл сделать свой таймер. Не знаю, как там в Линукс, но в Винде я бы использовал QueryPerformanceCounter в отдельном потоке. Опять же, в Винде есть еще несколько таймер-объектов, типа waitable timer (см. CreateWaitableTimer,...) и timer-queue timer (см. CreateTimerQueue,...), но здесь ничем помочь не могу - сам не юзал :)