Есть поток, в процедуре Execute потока опрашивается устройство по TCP(на winsock реализовано, без всяких оберток), естественно если соединение не разорвано и устройство не посылает данные, то процедура может надолго зависнуть. И нужно чтобы через определенный интервал времени выполнялась одна процедура, которая будет проверять как давно последний раз приходили данные. До этого писал на Delphi, но понадобилась кроссплатформенность, и выбор пал на freepascal/lazarus. Как организовать работу таймера в отдельном потоке (т.е. в одном и том же потоке должно опрашиваться устройство и работать таймер)?
Может как-то сделать обработку системных сообщений? Наподобии:
- Код: Выделить всё
while GetMessage(Msg, 0, 0, 0) do
begin
TranslateMessage(Msg);
DispatchMessage(Msg);
end;
Есть какое-нибудь кросплатформенное решение этого в freepascal?