Bonjour,
Pour que tu comprenne un backgroundWorker il va falloir déjà aller lire de la doc dessus, en commençant par les liens donnés plus haut, auquel on pourra rajouter
celui-ci sans oublier
Puis tenter, en suivant les exemples donnés dans les liens, de modifier ton programme pour le faire fonctionner suivant tes attentes... et si tu rencontres des problèmes demande nous.
Ton problème est simple, tu a une boucle infini dans ton code et ton appli a une interface graphique.
Une appli, de base, n'utilise qu'un thread, à la fois pour ton code et pour l'interface (ben oui finalement ton code c'est aussi l'interface...), du coup ta boucle infini tien cet unique thread constamment occupé, donc l'interface ne peut plus réagir. L'idée avec le backgroundWorker c'est de déporter la partie du traitement dans un autre thread, pour ne pas occuper le thread principal infiniment, et rendre à nouveau l'interface réactive. L'utilisation d'un autre thread amene mécaniquement des complications, principalement pour communiquer avec lui, 2 thread ne pouvant pas partager directement leurs ressources (là je suis hors de mes connaissances va falloir aller demander les détails vers d'autres) le BackGroundWorker emmène donc une simplification à ce niveau, en permettant de créer un thread, de lui affecter une tache et de communiquer simplement avec lui. Sans lui il aurait fallut que tu implemente directement des thread en gérant toi même la communication avec ce thread... soit une toute autre pair de manche.
J@ck.
Partager