Linuxで動作し、コールバック関数を特定の頻度でperdiodically呼び出させるために、sigeventとtimer_createを使用するプログラムを作成しました。今、プログラムを移植可能にしたい(WindowsとLinux)ので、#ifdefsを使用してWindowsと同等の機能を使用するのが一番の方法です。携帯用ライブラリのtimer_createとTimerQueueTimer機能(ブーストのような)
AFAIK、窓に相当するのはTimerQueueTimerです。
これはOSサービスですが、スレッドと同様に、Boost C++のようなライブラリを介して移植可能にすることができます。
問題はBoost C++ライブラリにあるのか、あるいはPOCOや他の優れたライブラリにあるのか知っていますか?
もし存在しなければ、ポータブルライブラリにそのようなものが存在するのを防ぐ何かがありますか?
boost :: asio :: deadline_timerは私が探しているものではなく、timer_createとTimerQueueTimerと同じ精度で定期的にコールバック関数を呼び出すサービスでなければなりません。
私はlibevはあなたの問題を解決するかもしれないと思ったが、その後、私はそれがWindows上で実行されているのを聞いたことはありません実現、そのゴミの研究の後、私はこの見つけます。http://ドキュメントを.dvgu.ru/devel/ev.html#win32_platform_limitations_and_workarounds WindowsイベントシステムはPOSIXと互換性がありません。 – lvella
そのためには、ポータブルライブラリを使用する必要があります。 'boost :: asio'をもう一度見てください。それは確かに必要なことをすることができます。 –