Je voudrais savoir si les évènements sont thread-safe ? C'est une question qui me trotte dans la tete depuis un petit moment.
Merci
Je voudrais savoir si les évènements sont thread-safe ? C'est une question qui me trotte dans la tete depuis un petit moment.
Merci
Oula, c'est un peu vague comme question...
Tout ce qu'il y a à savoir, c'est que le déclenchement d'un évènement n'est rien de plus qu'un appel de méthode... les handlers s'exécutent donc généralement sur le thread qui déclenche l'évènement, sauf dans certains cas particuliers. Par exemple, le BackgroundWorker appelle les handlers des évènements ProgressChanged et RunWorkerCompleted sur le thread de l'interface graphique, et non sur le thread de travail, de façon à ce qu'on puisse modifier l'interface dans les handlers de ces évènements.
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
Donc , si j'ai un event qui ce nomme TOTO et que j'ai 3 threads qui le déclenche bah c pas thread-safe ? donc faut que je mette un vérrou sur l'abonné ?
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
ce que je veux dire c disont que j'ai un event
et que j'ai trois trois threads qui lance l'évènement AddFile, il faut donc que dans la fonction abonnée je mette une vérrou quelque chose du genre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 public delegate void AddFileinfoEventHandler(object sender, AddFileinfo e); public event AddFileinfoEventHandler AddFile;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 void _fonctionabonnée(...) { lock(objetverrou) { .... } }
??
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
Partager