Mise en place d'une temporisation: envoi d'un evt à une heure précise
3 réponses
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 ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Mehdi
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. } }
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.
}
}
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
Bonjour Mehdi,
"Mehdi" a écrit dans le message de 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
Bonjour Mehdi,
"Mehdi" <vioccc@REMOVEME.gmail.com> a écrit dans le message de
news:efv15gts2esj$.177vpfo7gly4p.dlg@40tude.net...
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 ?
"Mehdi" a écrit dans le message de 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
On Tue, 5 Jun 2007 13:14:41 +0200, Oriane wrote:
"Mehdi" a écrit dans le message de 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é).
On Tue, 5 Jun 2007 13:14:41 +0200, Oriane wrote:
"Mehdi" <vioccc@REMOVEME.gmail.com> a écrit dans le message de
news:efv15gts2esj$.177vpfo7gly4p.dlg@40tude.net...
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é).
"Mehdi" a écrit dans le message de 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é).