Bonjour à tous,
J'ai une question existentielle sur les cross thread operations.
Contexte:
Je développe actuellement une classe de gestion d'un lecteur codes à barres pour appareils mobiles.
Cette classe référence une DLL du SDK du fournisseur hardware.
Cette DLL englobe des classes de gestion dont ma classe va se servir.
Parmis les classes du SDK, celle de gestion du lecteur barcode semble tourner dans une thread à part. Cette thread renvoie donc un évènement vers ma classe de gestion à chaque lecture.
Ma classe de gestion a pour but de relancer cet évènement vers la ou les forms abonnées.
Problème:
La valeur reçue par ma form provient donc d'un thread séparé. (celui de la DLL)
Lorsque je veux afficher la valeur reçue dans l'évènement sur ma form, l'erreur fatalistiquement agaçante "Cross thread operation" se pointe.
Je me doute évidement qu'il me suffirait de placer dans chaque form s'abonnant à cette classe un Délégué qui se chargera de passer ma données d'un thread à ma form.
Souhait:M'abstraire de cette contrainte au niveau de ma form en "déthreadisant" cette donnée directement dans ma classe.
Cela me permettrait d'éviter le délégué sur chaque form et simplifierais au maximum la gestion du lecteur codes à barres.
Je remercie d'avance toutes les idées, bonnes ou mauvaises, pouvant m'aider à atteindre la lumière
Bonne soirée.
Partager