2010-11-24 6 views
2

J'ai un service C++ Windows qui devrait appeler une fonction toutes les 15 minutes. Je suis nouveau au C++ et n'ai aucune idée de comment faire ceci. Est-ce que n'importe qui peut me dire comment réaliser ceci?Comment planifier une tâche en C++

Merci, Subrat

Répondre

4

Appelez SetTimer().

Alternativement, utilisez le Task Scheduler API, qui peut exécuter un gestionnaire .exe ou COM régulier sur un calendrier prédéfini. Si vous faites cela, vous n'aurez peut-être même pas besoin d'un service.

+0

+1 Pas besoin d'apporter Boost pour un besoin aussi simple et spécifique à la plate-forme. –

+0

Comment utiliser le planificateur de tâches? J'ai vérifié les articles MSDN. Ils ne sont pas très clairs. Je veux exécuter un .exe. Comment puis-je spécifier l'adresse lors de l'activation? – sid

+0

@Subrat: Voici un tutoriel pour l'API Task Scheduler 2.0 (Vista et versions ultérieures): http://msdn.microsoft.com/fr-fr/magazine/cc163350.aspx. Si vous avez besoin de support XP, vous voudrez regarder l'ancienne API 1.0. Voici quelques exemples: http://msdn.microsoft.com/en-us/library/aa383579.aspx. – Nate

1

Il est <ctime> tête en C++ (<time.h> en C), qui fournit une fonctionnalité de temps à faible niveau de base. Cependant, si vous cherchez quelque chose de plus proche de la minuterie de C#, vous pouvez utiliser la classe QTimer de Qt. Apprenez à connaître Qt - c'est une bonne chose.

+0

'Qt' est bon, mais si c'est pour une entreprise, vous devez savoir que' Qt' n'est pas gratuit. – ereOn

+0

Cela fait près de deux ans que le commutateur Qt LGPL. – anno

4

Il existe de nombreuses bibliothèques pour fournir des temporisateurs.

Quel système d'exploitation et quelles bibliothèques utilisez-vous? Vous pouvez en implémenter un par vous-même en utilisant Boost::Timer (ou même des fonctions temporelles standard C de l'en-tête ctime), ou, si vous utilisez une bibliothèque qui gère la boucle principale, il fournit certainement certaines fonctions.

+0

Cela peut être une question idiote :) Les fichiers ont l'extension .hpp. que sont-ils? puis-je l'utiliser dans mon code? Mes fichiers ont l'extension .cpp. – sid

+0

Ce sont des fichiers d'en-tête pour C++. Vous pouvez les utiliser comme des fichiers d'en-tête classiques avec l'extension '.h': il suffit de les inclure avec' #include ' – peoro

+0

Trouvé dans la documentation de Boost. Ne pense pas que je peux l'utiliser. Le temps écoulé maximal mesurable peut être aussi bas que 596,5 heures (ou même moins) pour la mise en œuvre fournie. En raison de ces limitations, on ne peut pas compter sur cette minuterie pour être robuste, et ne devrait pas être utilisé si cela est préoccupant. – sid

Questions connexes