Accueil > Forum > > > > Threading pour accéder aux Items d'une ListView
Threading pour accéder aux Items d'une ListView
mardi 26 juin 2007 à 13:50:01 |
Threading pour accéder aux Items d'une ListView

tahiti_bob
|
Bonjour, Au chargement d'une form, je remplis un contrôle ListView (name: liste) à partir des rows d'un DataGridView. Je voudrais, dans un thread séparé, traiter chaque Items de la ListView. J'ai justement une exception "Opération inter-threads non valide : le contrôle 'liste' a fait l'objet d'un accès à partir d'un thread autre que celui sur lequel il a été créé.". Existe t'il une solution pour récupérer les Items de ma ListView afin que dans mon thread je puisse les parcourir simplement avec un foreach ? Merci d'avance de vos réponses @++ Clém
|
|
mardi 26 juin 2007 à 14:47:11 |
Re : Threading pour accéder aux Items d'une ListView

Julien237
|
Réponse acceptée !
Salut, Une mauvaise solution (pourquoi je te la présente si elle est mauvaise :p, juste pour tester ton appli, elle n'est pas valable à long terme) est simplement de faire Controls.CheckForIllegalCrossThreadCall = false; (nom de la propriété de mémoire, peut-être vaguement différente...)
Pour une solution plus sérieuse, tu dois utiliser Invoke. Donc toutes les lignes de codes qui touchent au propriétés et aux méthodes de ta listview doivent être placé dans une méthode, puis dans ton thread fille, tu fais ListView.Invoke(delegatedetaméthode).
Julien.
|
|
mardi 26 juin 2007 à 14:52:39 |
Re : Threading pour accéder aux Items d'une ListView
|
mardi 26 juin 2007 à 16:00:05 |
Re : Threading pour accéder aux Items d'une ListView

tahiti_bob
|
Bonjour,
Merci Julien237 de ta réponse. Il est effectivement possible de désactiver la levée d'exceptions pour l'interthread j'avais vu ca il me semble dans les propriétés de mon projet^^. J'avais essayé de passer par les Invoke sans succès je vais tenter ce que tu me propose. Bidou, merci pour le tuto je vais y jeter un coup d'oeil :D
Merci à vous deux. Je vous tiens au courant de l'évolution de mon problème! Mon projet approche de sa version finale (Bibliothèque et lecteur multimédia après presque 3 ans de développement :D).
@++ Tahiti_bob
|
|
mardi 26 juin 2007 à 18:04:19 |
Re : Threading pour accéder aux Items d'une ListView

Bidou
|
3 ans de dev? Ca doit etre mieux que Media Player 11 alors... 
- Blog-
|
|
mardi 26 juin 2007 à 22:52:25 |
Re : Threading pour accéder aux Items d'une ListView
|
mercredi 27 juin 2007 à 14:06:07 |
Re : Threading pour accéder aux Items d'une ListView

tahiti_bob
|
Réponse acceptée !
Bonjour, Merci Yxion pour ton code sur le threading. J'ai finalement utilisé ce que Julien237 a proposé avec le Control.Invoke(delegate). //Déclaration privatedelegatevoidtag_Delegate(); privatetag_Delegate deleg_tag; privateThread tagger;
Au chargement de la form deleg_tag = newtag_Delegate(this.ajout); tagger = newThread(newThreadStart(this.ThreadPro)); tagger.Start(); privatevoid ThreadPro() { liste.Invoke(deleg_tag); //Où "liste" est le nom du contrôle ListView }
privatevoid ajout() { foreach (ListViewItem lvi in liste.Items) { //Code... } }@++ Clém
|
|
mercredi 27 juin 2007 à 14:17:56 |
Re : Threading pour accéder aux Items d'une ListView

Julien237
|
M'enfin mon message ! Il a disparu ^^... Bon je retappe...
Lorsque tu utilise Controle.Invoke(MaMéthode) c'est le thread créateur du controle qui s'exécute sur MaMéthode, donc ici tu ne fais pas de multi-threading (ou en tout cas rien d'utile). Tu devrais plutot mettre ton algo qui prend du temps (puisque j'imagine que c'est la raison pour laquelle tu fais du multi-threading) dans ThreadPro, et mettre l'affichage final qui touche au controle dans ajout... Je pense qu'ajout ne devrait pas faire plus d'une ou deux lignes de codes...
Julien.
|
|
Cette discussion est classée dans : listview, accéder, thread, items, threading
Répondre à ce message
Sujets en rapport avec ce message
Parcours de Listview [ par scoubidou944 ]
bon ca compile pas :Qql'1 pourrait me dire ce qui déconne & si les formules du genre 'System.Windows.Forms.ListBox' C propre ou bien si y'a moyen de r
ListView récupérer element texte : soluce [ par YOOP ]
for(int i=0;i{ if(ListView.Items[i].Checked==true) { for(int h=1;h { ListViewItem temp1 = ListView.GetItemAt(h,i); temp1 = ListView.I
Déplacer les items d'une listview [ par tahiti_bob ]
Bonjour,Je voudrais savoir comment est ce que l'on fait pour déplacer les items d'une listview avec la souris ? (comme la playlist de Winamp )Merci d'
LitView: desactiver l'affichage des images près des items [ par Fildomen ]
Salutj'ai une listview, qui affiche les items en "Details", mais le problème, c'est qu'elle reserve toujours une ptite place près des items pour que j
Listview et collection d'items [ par el_teedee ]
Bonjour, je voudrais -pour rafraichir ma listview après un traitement- mettre la liste des lignes dans une collection de ListViewItem par exemple. J'
Déplacer les items d'une listview sans drag&drop [ par dysko ]
J'aimerais savoir si on peut retrier la listview à partir d'un index en particulier...sans redessiner tout le controle ou alors recréer une autre list
ListView et couleur selection items [ par YLSEAGLE ]
Bonjour à tous. Je cherche à changer la couleur de sélection d'un item dans une listview. Par défaut, celle ci est de couleur bleu avec le texte en bl
Cross-Threading -> Exception [ par sebseb42 ]
salut a tousvoila mon probleme est simple, dans ma classe principal, je lance un thread, et dans ce thread j'essaye de modifier un controle.ca fonctio
Commande dans programme [ par piep14 ]
Bonjour, je souhaite passer des écritures dans telnet. J'ai fait ceci qui lance bien telnet et le probleme et que je n'arrive pas a simuler la touche
Livres en rapport
|
Derniers Blogs
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|