Mise en place d'une temporisation: envoi d'un evt à une heure précise

Le
Oriane
Bonjour,

je dois faire un traitement répétitif en .NET/C#, qui doit se terminer au
bout de dT secondes. En gros on démarre le traitement à t0, et s'il n'est
pas fini à t0+dT, il faut l'interrompre. Je me demande quelle est la
meilleure façon de procéder en C# pour envoyer/déclencher un événement à
t0+dT ?

Oriane
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Mehdi
Le #12189861
On Tue, 5 Jun 2007 09:45:39 +0200, Oriane wrote:

je dois faire un traitement répétitif en .NET/C#, qui doit se terminer au
bout de dT secondes. En gros on démarre le traitement à t0, et s'il n'est
pas fini à t0+dT, il faut l'interrompre. Je me demande quelle est la
meilleure façon de procéder en C# pour envoyer/déclencher un événement à
t0+dT ?



Tout dépends de quel type de traitement tu parles mais une solution
générale serait de démarrer un timer au temps t0. Lorsque le timer expire,
changer la valeur d'un drapeau (c'est comment ca que l'on dit "flag" en
francais ? - un bete bool par exemple). Dans ton traitement, verifier de
temps en temps la valeur du drapeau et arreter le traitement si le drapeau
a été signalé. Autrement dit:

bool stop = false;

private void DoWork()
{
for (whatever)
{
if (stop)
{
// Time's up
return;
}

// Got some more time.
// Process some more data.
}
}
Oriane
Le #12189851
Bonjour Mehdi,

"Mehdi" news:efv15gts2esj$
On Tue, 5 Jun 2007 09:45:39 +0200, Oriane wrote:


Tout dépends de quel type de traitement tu parles mais une solution
générale serait de démarrer un timer au temps t0.


Oiu j'ai pensé au Timer mais je ne vais pas en créer un juste pour qu'il me
donne une fois un signal et puis pour le détruire non ?


Merci de ta réponse
Mehdi
Le #12189841
On Tue, 5 Jun 2007 13:14:41 +0200, Oriane wrote:

"Mehdi" news:efv15gts2esj$
On Tue, 5 Jun 2007 09:45:39 +0200, Oriane wrote:


Tout dépends de quel type de traitement tu parles mais une solution
générale serait de démarrer un timer au temps t0.


Oiu j'ai pensé au Timer mais je ne vais pas en créer un juste pour qu'il me
donne une fois un signal et puis pour le détruire non ?



Pourquoi pas ? C'est un peu le principe du timer non ? Et ce ne sont pas
les quelques octets qu'il utilise en mémoire ou les quelques nano-secondes
que sa création et sa déstruction prennent qui vont avoir un quelconque
impact sur les performances de ton appli.

Bien sur, absolument rien ne t'empeche de le ré-utiliser si besoin au lieu
de le détruire (sauf si tu utilise le seul timer - le Threading timer ou
Timers timer je ne me souviens plus - qui ne peut pas etre ré-utilisé apres
avoir été arreté).
Publicité
Poster une réponse
Anonyme