BackGroundWorker et presse-papier [Résolu]

Messages postés
90
Date d'inscription
mercredi 21 novembre 2007
Statut
Membre
Dernière intervention
25 mai 2013
- - Dernière réponse : djedjeska
Messages postés
90
Date d'inscription
mercredi 21 novembre 2007
Statut
Membre
Dernière intervention
25 mai 2013
- 30 sept. 2011 à 13:48
Bonsoir

J'ai ajouté un backgroundworker dans mon programme de manière à effectuer une tâche en arrière plan (comme son nom l'indique).

Cependant, j'ai besoin de copier une image et la coller dans un richtextbox (ce que j'arrive aisément à faire dans une procédure normale), mais j'ai l'impression que le backgroundworker n'accepte pas l'usage du presse-papier...

J'essaye d'accéder au presse-papier de dette façon :

Clipboard.SetDataObject(MonImage)

Si vous avez une idée... Merci
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
Messages postés
90
Date d'inscription
mercredi 21 novembre 2007
Statut
Membre
Dernière intervention
25 mai 2013
3
Merci
Bon je crois que j'ai trouvé la réponse ici :
http://stackoverflow.com/questions/4685237/how-can-i-make-a-background-worker-thread-set-to-single-thread-apartment

Apparemment, on ne peut pas toucher au clipboard dans un thread créé grâce au BackGroundWorker. Il faut créer un Thread "normal" de manière à gérer le SetApartmentState() avant de lancer le thread...

Le meilleur moyen pour que je me mette vraiment à apprendre les threads... (J'avoue que le BackGroundWorker simplifiait beaucoup la tâche)

Merci à vous 2 pour vos réponses...

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 145 internautes nous ont dit merci ce mois-ci

Commenter la réponse de djedjeska
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
207
0
Merci
Bonjour,

si, comme je le pense (je ne connais pas VB.Net) ton backgroundworker est dans un "thread" séparé, tu risques fort de tomber dans un cas exposé ICI PAR MSDN à la rubrique Exceptions, non ?

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Commenter la réponse de ucfoutu
Messages postés
14457
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
26 mai 2019
130
0
Merci
Bonjour,

Regardes du coté des CrossThread Operations :
http://www.codeproject.com/KB/recipes/AccessControlFromThread.aspx

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS et aussi ce lien[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
Commenter la réponse de NHenry
Messages postés
90
Date d'inscription
mercredi 21 novembre 2007
Statut
Membre
Dernière intervention
25 mai 2013
0
Merci
ucfoutu : je me suis demandé oui si c'était pas la deuxième erreur citée par msdn, mais après de nombreuses recherches, ça ne n'a mené à rien... Je ne comprends pas ce qu'ils veulent qu'ils veulent dire par "Add the STAThreadAttribute to your application's Main method."


NHenry je comprends à peu près ce qu'ils disent, mais je ne vois pas le rapport entre un objet d'un autre thread, et le ClipBoard...
D'ailleurs, j'arrive à accéder aux objets du Form contenant le BackGroundWorker sans problème...
Je ne suis pas encore bien calé niveau Threads...
Commenter la réponse de djedjeska
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
207
0
Merci
Ah bon ?
On n'aurait pas cru !
C'est pourtant ce qu'en disait MSDN


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Commenter la réponse de ucfoutu
Messages postés
90
Date d'inscription
mercredi 21 novembre 2007
Statut
Membre
Dernière intervention
25 mai 2013
0
Merci
Oui, mais c'est pas très très clair pour quelqu'un qui débute au niveau des threads...

J'ai réglé le problème du presse-papier en créant un thread "manuellement", mais maintenant il me pose des problèmes d'accès aux fichiers...
C'est pas facile (comme le dit MSDN) ne créer un thread sans erreurs
Commenter la réponse de djedjeska