Simuler son propre temps et ses timer [Résolu]

Messages postés
3
Date d'inscription
jeudi 11 juin 2009
Dernière intervention
19 novembre 2009
- 16 nov. 2009 à 10:26 - Dernière réponse :
Messages postés
3
Date d'inscription
jeudi 11 juin 2009
Dernière intervention
19 novembre 2009
- 19 nov. 2009 à 15:29
Bonjour,
Je suis en train de développer un simulateur de salle de marché et je dois pour cela simuler on propre temps (ne pas utiliser DateTime globalement).

Mon problème est que je voudrais utiliser un timer qui execute des actions à certaines heures. Rien de plus facile vous me direz, c'est le principe du timer. Mais, ... je voudrais bien pouvoir mettre pause dans ma simulation (c'est mon temps, je fais ce que je veux avec :p) et que cela mette en pause les timers du coup, qu'ils ne s'exécutent pas alors que mon temps est en pause.

Quelqu'un aurait-il une idée? Sachant qu'il faut que ça soit le plus précis possible.

Merci
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
Messages postés
1863
Date d'inscription
lundi 28 novembre 2005
Dernière intervention
14 février 2015
- 19 nov. 2009 à 11:42
3
Merci
Salut

Ce que tu peux faire, c'est regarder l'heure à laquelle tu mets en pause, regarder l'heure à laquelle tu reprends, et faire le calcul.

En gros, au lancement :
TimeSpan offset = 0;


Mise en pause :
DateTime miseEnPause = DateTime.Now;


Reprise :
offset += DateTime.Now - miseEnPause;


Et tu vois l'heure "fictive" - comme tu dis - à tout moment avec
DateTime heureFictive = DateTime.Now.Subtract(offset);


Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé ! -

Merci krimog 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 90 internautes ce mois-ci

Commenter la réponse de krimog
Messages postés
233
Date d'inscription
vendredi 21 mars 2003
Dernière intervention
25 octobre 2010
- 16 nov. 2009 à 11:26
0
Merci
j'ai du mal a voir ce que tu veux faire, mais si tu veux laisser tourner ton timer, tu peux toujours retirer le délégué associé à l'event tick de ton timer, comme ca, ton timer continuera mais il ne sera plus utilisé...

Nul ne devient grand par la guerre...
Commenter la réponse de Miltiades
Messages postés
3
Date d'inscription
jeudi 11 juin 2009
Dernière intervention
19 novembre 2009
- 16 nov. 2009 à 11:32
0
Merci
En fait, je cherche à pouvoir lancer une horloge (par exemple je dis start(long ticks) et la un compteur commence comme si il était 15h00 par exemple.
La dessus je crée un Timer en lui disant de s'exécuter une fois dans 1h.
Au bout de 10 minutes que mon compteur (mon horloge) tourne, je la met en stop (il est donc virtuellement 15h10). Sauf que moi je veux que mon timer lance le delegate à 18h (heure fictive de mon compteur).
Je voudrais donc savoir comment faire pour que le timer prenne en compte le fait que j'ai mis le temps en pause.

J'espère que j'ai été un peu plus clair :)

Merci
Commenter la réponse de suprascio
Messages postés
2641
Date d'inscription
mercredi 2 juin 2004
Dernière intervention
8 janvier 2014
- 16 nov. 2009 à 13:31
0
Merci
Salut,

Tu peux définir une heure dans un datetime et gérer le tout avec un timestamp ainsi tu aurais comme ligne :

DateTime dtN = new DateTime(01, 01, 1900, 15, 00, 00);
dtN.AddSeconds(1), etc...

Chris...
- La vérité n'est pas ailleurs, elle est sous le nez de chacun, quelques mouvements neuronale permettent de l'entrevoir -
MCPD (webform-winform) / MCSA / MCDST / MCT
Commenter la réponse de cboulas
Messages postés
874
Date d'inscription
jeudi 4 mars 2004
Dernière intervention
19 août 2014
- 19 nov. 2009 à 09:59
0
Merci
Bonjour,

En gros, si je comprend bien, tu veux pouvoir faire "Timer.Pause" ?
Je pense que tu as gagné de le droit de créer ta propre classe Timer. Cette dernière se servira surement de Timers dans son fonctionnement, c'est pourquoi je te conseille la lecture de ce post si tu veux en savoir plus sur la précision des différents timers utilisables en .Net: http://www.codeproject.com/KB/cs/LP_TimerTest.aspx. Cela devrait te permettre de trouver ton bonheur.

Bon développement,

Billou_13

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
Commenter la réponse de billou_13
Messages postés
874
Date d'inscription
jeudi 4 mars 2004
Dernière intervention
19 août 2014
- 19 nov. 2009 à 10:06
0
Merci
Re,

Remarque, maintenant que j'y pense, ta propre classe pourra aussi fonctionner en utilisant la date courante.

Bonne journée,

Billou_13

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
Commenter la réponse de billou_13
Messages postés
3
Date d'inscription
jeudi 11 juin 2009
Dernière intervention
19 novembre 2009
- 19 nov. 2009 à 15:29
0
Merci
j'utilise QueryPerformanceCounter pour l'instant pour l'heure vu qu'il me faut quelque chose de précis (c'est une salle de marché, on rigole pas avec les ms à la bourse :p )

Sinon, merci pour vos réponses, je pense que je vais faire de la magouille de comptage d'écart entre le pause et la relecture pour simuler le temps en pause :)

Merci encore :)
Commenter la réponse de suprascio

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.