2010-12-06 15 views
7

Ich muss eine Funktion asynchron für jede x Millisekunden aufrufen. Ich bin in C++, Linux-Umgebung. Welche Funktionen könnte ich nennen, um das zu erreichen?Timer Callback in C++

Antwort

4
+0

Danke für die Antwort. Es scheint, dass ich io_service :: run() aufrufen muss, damit die Callback-Funktion aufgerufen wird. Kann ich das irgendwie vermeiden, da ich nur die Callback-Funktion brauche, die nach x Millisekunden aufgerufen werden soll und ich brauche, um io_service :: run() aufzurufen, muss ich sie nach einer bestimmten Zeit aufrufen, was den Verwendungszweck zunichte macht die Timer-Rückruffunktion. Oder fehlt mir etwas? – Steveng

+0

Sie vermissen eine einfache Sache: Sie müssen einen Thread zur Verfügung stellen, auf dem der Timer aufgerufen werden soll. Dafür ist io_service :: run() zuständig. Sie können dafür einen dedizierten Thread erstellen. Wenn Sie sich in einer speziellen Umgebung befinden (z. B. ein Widget-Toolkit mit einer Nachrichtenschleife, müssen Sie uns das mitteilen). –

+0

Der Aufruf von "Thread zum Ausführen von io_service :: run()" sieht folgendermaßen aus: boost :: thread timerThread (boost :: bind (& boost :: asio :: io_service :: run, &io)); –