Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

GÉNÉRATION D'ÉVÈNEMENT À LA FIN D'UN THREAD


Information sur la source

Catégorie :.NET Source .NET ( DotNet ) Classé sous : évènement, thread, event, génération Niveau : Initié Date de création : 11/08/2005 Date de mise à jour : 12/08/2005 07:58:25 Vu / téléchargé: 8 350 / 1 056

Note :
9 / 10 - par 2 personnes
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (9)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
Hello,

J'ai fait cette source suite à une question de clairenes (http://www.csharpfr.com/forum.v2.aspx?ID=531792).
Il s'agit en fait de montrer comment déclencher un événement à la fin d'un Thread.
Ca n'est pas compliqué, il faut juste comprendre les Threads et les events.

Le programme en lui-même présente un fenêtre où l'on peut choisir un nombre de secondes, puis cliquer sur un bouton pour démarrer le Thread. Une fois le Thread finit, un event est levé, et le Thread principal afiche une MessageBox.
 

Conclusion

Dans le code, j'ai fait une boucle, car je trouvais que ça simulais mieux une longue opération plutôt que de faire Thread.Sleep(x * 1000);

Tout les commentaires sont les bienvenus.

Je l'ai mis dans la catégorie Astuces, mais si quelqu'un voit une meilleure catégorie, je suis ouvert.
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

12 août 2005 07:58:25 :
J'ai juste tenu compte du problème de cross-threading soulevé par Lutinore et résolu par Coq et Lutinore. Merci à eux deux.

Commentaires et avis

signaler à un administrateur
Commentaire de sebmafate le 11/08/2005 09:41:26 administrateur CS

c'est pas trop une astuce... mais plus théorique... donc, je le déplace dans .NET

signaler à un administrateur
Commentaire de SharpMao le 11/08/2005 09:46:02

Pas de problèmes, comme je l'ai dis, je ne savais pas trop où le mettre.

signaler à un administrateur
Commentaire de Lutinore le 11/08/2005 15:48:21 administrateur CS

Tiens je ne savais pas, mais en .NET 2.0 acceder à la MessageBox c'est considéré comme du cross-threading, tu ne pouvais pas le voir avec VS 2003 mais en mode DEBUG avec VS 2005 une exception est levée.

Les threads ont une propriété Name qui peut être sympa dans un exemple comme celui-ci.

signaler à un administrateur
Commentaire de coq le 11/08/2005 21:24:18 administrateur CS

Le problème c'est que justement la méthode associée à l'event est appelée dans le contexte du thread qui declenche, pas dans le thread principal.

signaler à un administrateur
Commentaire de Lutinore le 11/08/2005 22:03:22 administrateur CS

Ouaip ca c'est le problème du cross-threading, mais là c'est pas un contrôle c'est une MessageBox, alors pourquoi ?

signaler à un administrateur
Commentaire de Lutinore le 11/08/2005 22:09:17 administrateur CS

Si la ligne de la MessageBox est commentée y'a plus d'exception.

signaler à un administrateur
Commentaire de coq le 11/08/2005 22:15:34 administrateur CS

Dans l'exemple présent une surcharge avec le paramètre parent est utilisée, je suppose que ça peut entrainer le problème.

signaler à un administrateur
Commentaire de Lutinore le 11/08/2005 22:41:35 administrateur CS

Ouai bien vu, sans le this y'a plus d'exception !

signaler à un administrateur
Commentaire de SharpMao le 12/08/2005 10:45:11

Merci à tout les deux, c'est vrai que je ne l'avais pas testé avec le 2.0.
J'ai mis une nouvelle version, sans le 'this'.

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Problème de thread et event [ par zobio ] Voila, je cherche a lancer un thread secondaire &#224; partir de mon thread principal, jusque la pas de soucis. Ensuite je voudrais que lorsque mon th Thread [ par Bidou ] Bonjour,Petite question pour les spécialistes des Threads :j'utilise un object comme ceci:X x = new X();x.DoInThread();X est une classe qui possède do Thread [ par Equinox84 ] Bonjour : Est ce qu'il est possible de lancer une m&#233;thode via un thread diff&#233;rent que celui dans lequel on est ? Si oui comment ? --&gt; datagrid winform intercepté event textchanged [ par pilos ] Salut,je souhaite intercepter l'evennement "textchanged" sur une cellule de datagrid winform.mon datagrid a 2 colonnes, l'utilisateur peut saisir la p Probleme thread ==> Crossed Thread [ par julbuttt ] Bonjour, voila en faite j'utilise deux thread qui s'executent en //, un qui sert a l'emission de données et l'autre a la reception . Je recupere les d Thread : un code en vs2003 vers vs2005 [ par cedoli ] Salut &#224; tous.J'utilise un thread pour aller lire le code source d'une page HTML et l'afficher dans un TB.void go() &nbsp;&nbsp;&nbsp; &nbsp;&nbsp Controler un thread en ne connaissant que son nom [ par fcolo ] Bonjour,je r&#233;alise une application (pour le fun) qui lance 100 thread en parallele.Chaque thread devra ex&#233;cuter le m&#234;me code.Dans ce co Focus sur un Formulaire créé dans un Thread [ par AlexBob789 ] <TD id=HB_Focus_Element vAlign=top width="100%" background="" height=250 UNSELECTAB ouvrir une form enfant dans un thread différent [ par bossun ] salut,Dans une appli MDI, ne veux ouvrir mes feilles enfants dans un thread différent à chaque fois. donc je voudrais utiliser le backgroudnworker pou Pbm de gestion d'event!!? [ par ratsimisampy ] salut &#224; tous!voici mon probl&#232;me lors du d&#233;ploiment de mon appli sur poste client:&nbsp; j'ai un event double-click qui normalement ,per


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,640 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.