begin process at 2010 02 10 08:29:17
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Windows

 > 

Formulaire / Winforms / Controls

 > 

Modification d'un labelText depuis une thread


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Modification d'un labelText depuis une thread

vendredi 17 octobre 2008 à 17:49:19 | Modification d'un labelText depuis une thread

knuck18

Bonjour à tous,

J'ai une interface graphique sur laquelle j'ai un labelText.
J'exécute un Thread qui, après chargements de valeurs, doit modifier mon labelText.

L'erreur est la suivante :
Opération inter-threads non valide : le contrôle 'latestVersion' a fait l'objet d'un accès à partir d'un thread autre que celui sur lequel il a été créé.
Quelle est la meilleure solution d'après vous pour régler ce problème ??

Merci ;)
samedi 18 octobre 2008 à 14:16:48 | Re : Modification d'un labelText depuis une thread

niky

Membre Club
Réponse acceptée !
Salut,

Depuis le framework 2, les opérations inter thread sur les éléments graphiques sont déconseillés et génèrent par défaut une exception en mode debug.
Tu as deux solutions pour mettre à jour ton interface graphique à partir d'un thread :
- Passer par la méthode Invoke présente sur tous les composants graphiques. Le pattern ressemble à ça :

void MonThread()
{
   /* ... */
   UpdateLabel("Hello World");
   /* ... */
}

delegate
void UpdateLabelDelegate(string text);

void UpdateLabel(string value)
{
  if (labelText.InvokeRequired)
    labelText.Invoke(new UpdateLabelDelegate(UpdateLabel),
                              new object[] { value });
  else
    labelText.Text = value;
}

- Sinon, le plus simple est encore de passer par un BackgroundWorker pour la gestion du thread. L'événement ReportProgress du BackgroundWorker étant toujours appelé dans le thread principal de l'application.


samedi 18 octobre 2008 à 18:09:35 | Re : Modification d'un labelText depuis une thread

Bidou

Administrateur CodeS-SourceS
Réponse acceptée !
Bonsoir,
Exemple complet et détaillé ici:
http://www.csharpfr.com/tutorial.aspx?ID=174



-My Blog-
dimanche 19 octobre 2008 à 08:19:54 | Re : Modification d'un labelText depuis une thread

xmox667

Membre Club
Salut,
Çà me rappelle des souvenirs. J'avais une application "multi-threadé" sous vs 2003 après passage sous vs 2005 :
Invalid Cross Thread Operation.
A+




dimanche 19 octobre 2008 à 16:44:10 | Re : Modification d'un labelText depuis une thread

coq

Administrateur CodeS-SourceS
Salut,

Juste un petit éclaircissement sur le message de niky : "Depuis le framework 2, les opérations inter thread sur les éléments graphiques sont déconseillés et génèrent par défaut une exception en mode debug."
Attention, dans les versions précédentes de .NET aussi c'était déconseillé : la différence réside principalement comme niky l'a dit dans l'existance d'assistant de debug qui lancent cette notification.


/*
coq
MVP Visual C#
CoqBlog
*/
lundi 20 octobre 2008 à 13:03:56 | Re : Modification d'un labelText depuis une thread

knuck18

Oki merci à vous !
Problème résolu ;)


Cette discussion est classée dans : thread, modification, labeltext


Répondre à ce message

Sujets en rapport avec ce message

thread [ par bouleetbil ] Je cree un chat avec des sockets donc j'ai un thread qui tourne en fond de tache et qui recupere les messages. A partir de ce thread je peux recevoir multi thread [ par matt2 ] salut j'aurai besoin d'un renseignement!!!!j'ai créé un prog en multi thread. Chacun des deux thread fait appel à une file que j'ai déclaré dans ma cl Changement de langue d'un ColorDialog C# [ par Did69 ] Hello all,Voila mon probleme, lorsqu'on ouvre un ColorDialog, il utilise la langue de windows, en gros si windows est en francais tous les boutons son Changement de langue d'un ColorDialog C# [ par Did69 ] Hello all,Voila mon probleme, lorsqu'on ouvre un ColorDialog, il utilise la langue de windows, en gros si windows est en francais tous les boutons son Ajout d'un contrôle depuis un thread en utilisant Invoke... [ par gazous ] Bonjour,Je vous contacte car j'ai vu que vous étiez assez calé en dll.Mon problème :J'ai un thread qui essaye d'ajouter un contrôle dans un panel char Problème de thread, socket et form [ par Florynth ] Bon pas très compliqué,j'ai créé un thread qui écoute un portaprès je pèse sur un bouton qui fait connectédonc il créé un socket le connect au port en Pb d'affichage de fenetre et thread... [ par bigflo ] Salut,Je developpe un client de tchat en c#.Mais j'ai quelque pb d'affichage des fenetres de tchat. Explication:Bon, j'ai une treeview et lorsque je d thread en C# [ par karshnod ] Bonjour, je me permet de poster car je suis sur un probleme que je ne comprend pas J'ai une WinForm, qui detecte la navigation sur Ie. J'ai un thread Thread + NetworkStream [ par JuS ] Je vais vous exposer mon problème (c'est un peu long à lire et à comprendre...)Je programme un programme client/serveur.Le client, en C#, communique a comment affiché le suivi de modification du Word en html??? [ par hamden79 ] slt, je ne sait comment faire pour activé le suivi de modification dans un fichier word après l'avoir ouvrir.pour l'ouverture et le sauvegarde j'ai pa


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,811 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales