Ok je vais voir la doc dessus.Envoyé par smikar
merci je vais en avoir besoin.Envoyé par smikar
Ok je vais voir la doc dessus.Envoyé par smikar
merci je vais en avoir besoin.Envoyé par smikar
Mais non
Fais vraiment comme le code que t'ai montré, quelque chose comme ça :
Et tu peux améliorer ça en fonction du code de mes posts précédents.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 class Timer : ... { [...] private System.ComponentModel.ISynchronizeInvoke m_SynchronizationObject = null; public System.ComponentModel.ISynchronizeInvoke SynchronizingObject { get{return m_SynchronizingObject ;} set{m_SynchronizingObject = value;} } protected virtual void OnTick(EventArgs e) { if(Tick != null) // Tick l'événement { if (SynchronizingObject != null && SynchronizingObject.InvokeRequired) { SynchronizingObject.BeginInvoke(Tick, new object[]{this, e}); } else { Tick(this, e); } } } }
Allez jem'en vais profiter du soleil
J'ai fais :
et sa fonctionne pas !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 class Timer : Component { [...] private System.ComponentModel.ISynchronizeInvoke m_SynchronizationObject = null; public System.ComponentModel.ISynchronizeInvoke SynchronizingObject { get{return m_SynchronizingObject ;} set{m_SynchronizingObject = value;} } private void OnTime(TimerEventArgs e) { if (Timed != null) { foreach (TimedEventHandler t in Timed.GetInvocationList()) { if (t != null) { if (SynchronizingObject != null && SynchronizingObject.InvokeRequired) { SynchronizingObject.BeginInvoke(t, new object[] { this, e }); } else { t.BeginInvoke(this, e, new AsyncCallback(TimedEventHandlerComplete), t); } } } } } private void TimedEventHandlerComplete(IAsyncResult ar) { TimedEventHandler e = (TimedEventHandler)ar.AsyncState; e.EndInvoke(ar); } }
dois-je interfacer mon composent ?
Edit :
En fait ca ne fonctionne pas parce que SynchronizingObject reste = null. tout le truc est de savoir pourquoi et comment resoudre ce problème
YA QUELQU'UN ?
Comme je l'ai dit plus haut la condition ne passe pas car le SynchronizingObject reste = a null. est-ce que tu pourais m'expliquer pourquoi svp smikar ? ou tout autre personnes ....
Ce truc me semble intéréssant mais je suis pas sûr de comprendre comment on s'en sert. un petit tuto svp ....
merci d'avance pour vos lumières !
Hello,
ton SynchronizingObject ne va pas s'initialiser tout seul. Dans l'initialisation de ton composant dans le formulaire, tu dois initialiser ce SynchronizingObject avec son instance. Si tu te trouves dans la classe du Form, tu peux directement faire :
pour que ton composant déclenche des événements dans le thread UI.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Timer t = new Timer(); t.SynchronizingObject = this;
Okay ?
oui en fait c'est bêtement une réference a l'objet parent.
ok merci pour l'info !
Je vais voir ce que ca donne !
Le lancement d'evenement fonctionne mais j'ai encore besoin d'un ajustage :
Le code généré par vs dans le code d'initialisation ne me convient pas.
comment faire en sorte dans le code du composent que this.Timer1.SynchronizingObject = null; devienne this.Timer1.SynchronizingObject = this;?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 private void InitializeComponent() { // // Timer1 // this.Timer1.Interval = 0; this.Timer1.Repeat = false; this.Timer1.SynchronizingObject = null; }
Regarde mon post du Mer Juil 27, 2005 13:17, cela doit faire l'affaire.
Bonne chance
pas vraiement mais bon j'ai contourné le problème.
merci pour tout et à tous !
Je vais pouvoir faire un tuto maintenant !
A#
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager