C# custom event thread safe
Bonjour à tous,
Est ce qu'il existe un pattern ou un best practice pour mettre en œuvre des évènements thread-safe ?
Dans l'idéal ce que je souhaiterai, c'est que lorsque le développeur s'abonne à un évènement qui se lance dans un autre thread, il n'ai pas besoin de se soucier de faire un methodeInvoker ou quelque chose de ce type de son côté.
En gros je ne veux pas que le développeur soit amené à écrire ce genre de chose lorsque l'évènement se lance.
Code:
1 2 3 4 5
|
this.Invoke((MethodInvoker)delegate ()
{
}); |
J'ai trouvé une astuce mais je recherche quelque chose de mieux:
Code:
1 2 3 4 5 6
|
if (onRowLoaded.Target is System.Windows.Forms.Form)
{
if (((System.Windows.Forms.Form)onRowLoaded.Target).IsHandleCreated)
((System.Windows.Forms.Form)onRowLoaded.Target).Invoke(onRowLoaded, new object[] { iNbRecordIndex, iNbFindRecord });
}else onRowLoaded(gtmClient, iNbRecordIndex, iNbFindRecord); |
Des pistes ?