#c #wxwidgets
#c #wxwidgets
Вопрос:
Мне нужно проверить системное время, и если время правильное (я думаю, что правильное время прошло в течение некоторого интервала назад, было бы более правильным), выполните определенные действия, используя wxwidgets. Я не нашел определенного класса или события, которые могут обрабатывать такие условия (я знаю, что есть виджет wxTimer, но это таймер — он отсчитывает время с какого-то момента, но не проверяет его) Есть ли лучший способ, чем иметь поток, который просто запускает while(true)
цикл проверки системного времени?
Ответ №1:
Похоже, что класс wxTimer генерирует событие по истечении его продолжительности:
Документация wxTimerEvent.
Ответ №2:
Для этого я бы использовал таймер крайнего срока boost :: asio.
void handler(boost::system::error_code ec) { ... }
...
io_service i;
...
deadline_timer t(i);
t.expires_from_now(boost::posix_time::seconds(400));
t.async_wait(handler);
...
i.run();
http://www.boost.org/doc/libs/1_55_0/doc/html/boost_asio/overview/timers.html
Ответ №3:
Вы можете использовать wxTimer
для выполнения действия в какой-то момент в будущем, просто запустите его с интервалом, равным разнице между этой точкой и сейчас ( wxDateTime
может помочь вам в этом).