Bonjour,
Je cherche à savoir s'il existe un moyen d'utiliser le presse-papier dans un traitement d'un backgroundworker.
1 2 3 4 5
| private void bgwExp_DoWork(object sender, DoWorkEventArgs e)
{
ApartmentState state = Thread.CurrentThread.ApartmentState;
Clipboard.SetDataObject("copier-coller");
} |
Le problème ici étant que le thread du backgroundworker est en mode MTA (state = ApartmentState.MTA).
L'appel au clipboard lance une excepion :
"Le thread actuel doit être en mode STA (Single Thread Apartment) avant que des appels OLE puissent être effectués. Assurez-vous que votre fonction Main est marquée comme STAThreadAttribute."
Le main est bien sûr en mode STA. Et j'ai aussi tenté de changé le mode, mais
Thread.CurrentThread.ApartmentState(ApartmentState.STA)
lance aussi une exception :
"Impossible de définir l'état de cloisonnement COM spécifié."
Donc existe-t-il une manière détournée permettant d'utiliser le clipborad dans le background worker ou non ?
Merci
Partager