Il existe plusieurs façons de faire une minuterie. Ce n'est pas difficile mais vous devez penser exactement ce que vous voulez. Si vous voulez appeler un rappel, vous utilisez généralement un thread qui dort jusqu'à ce que votre délai soit écoulé, avant d'appeler votre callback. Si vous ne souhaitez pas utiliser un thread, vous pouvez appeler périodiquement une fonction de vérification qui calcule le delta temporel.
Vous api sera une fonction prenant le retard et un pointeur de fonction plus les paramètres de rappel. Il lancera un thread qui dormira pour le délai, puis appellera le callback avec les paramètres donnés.
Vérifiez les bibliothèques à usage général, elles ont généralement des temporisations implémentées (gtk + glib, boost :: timer je pense).
MY2C
Edit:
Pour la partie de la portabilité, vous avez bien sûr d'écrire deux versions de votre fonction de minuterie. Si vous utilisez un thread, cela signifie qu'il vaut mieux utiliser un lib. Comme les libs vous donnent des timers ... Utilisez une lib :)
Ce que vous décrivez ne ressemble pas à une « application »; cela ressemble à une infime partie d'une interface de programmation (API). En outre, le texte de votre question est étrangement incomplet, la deuxième phrase s'arrête juste. Je suggère de l'éditer. – unwind
ne pouvez-vous pas utiliser la bibliothèque existante qui fait cela? "boost :: asio :: deadline_timer" est celui que vous cherchez. –
jetez un oeil à cet exemple, http://www.boost.org/doc/libs/1_43_0/doc/html/boost_asio/example/timers/tick_count_timer.cpp –