Comment puis-je mettre à jour l'interface graphique à partir d'un autre thread?

Quelle est la façon la plus simple de mettre à jour un Label partir d'un autre thread?

J'ai un Form sur thread1, et depuis que je suis à partir d'un autre thread (thread2). Alors que thread2 est du traitement de certains fichiers que je voudrais mettre à jour un Label sur le Form avec l'état actuel de thread2's de travail.

Comment puis-je le faire?

  • Ne fait pas .net 2.0+ ont la classe BackgroundWorker juste pour cela. Elle thread d'INTERFACE utilisateur courant. 1. Créer un BackgroundWorker 2. Ajouter deux délégués (un pour le traitement, et l'autre pour l'achèvement des travaux)
  • peut-être un peu en retard : codeproject.com/KB/cs/Threadsafe_formupdating.aspx
  • Voir la réponse .NET 4.5, C# 5.0: stackoverflow.com/a/18033198/2042090
  • Cette question ne s'applique pas à Gtk# GUI. Pour Gtk# voir ceci et ceci la réponse.
  • Attention: les réponses à cette question sont désormais encombré de gâchis de l'OT ("voici ce que j'ai fait pour mon application WPF") et de l'histoire .NET 2.0 artefacts.
InformationsquelleAutor CruelIO | 2009-03-19