ThreadStateException !! [Résolu]

Signaler
Messages postés
10
Date d'inscription
lundi 4 avril 2005
Statut
Membre
Dernière intervention
8 décembre 2005
-
Messages postés
28
Date d'inscription
dimanche 24 août 2003
Statut
Membre
Dernière intervention
28 septembre 2009
-
Bonjour tout le monde. Je ne sais pas pourquoi mais lorsque j'instancie un IDataObject :
IDataObject iData = Clipboard.GetDataObject();

Je recois cette erreur: «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 STAThreadAttribute.»

Pourtant, dans ma fonction Main, j'ai bel et bien mis
[System::STAThreadAttribute]

Comme il me dise de faire! Aidez-moi svp!!

4 réponses

Messages postés
28
Date d'inscription
dimanche 24 août 2003
Statut
Membre
Dernière intervention
28 septembre 2009

Re...



sinon y a ceci qui te permet de tester si ton thread est MTA ou STA...



if(Thread.CurrentThread.ApartmentState==System.Threading.ApartmentState.MTA)

{

// IDataObject iData Clipboard.GetDataObject(); > sa va crouter

// donc tu peux lancer un nouveau Thread, qui exécutera ta méthode

// contenant

//
IDataObject iData = Clipboard.GetDataObject();

Thread monThr=new Thread(new ThreadStart(MaSuperFonction));

monThr.Start();

monThr.Join();


}

else

{

// IDataObject iData Clipboard.GetDataObject(); > sa devrait rouler....

}




CrougniMan
Messages postés
18
Date d'inscription
mardi 20 septembre 2005
Statut
Membre
Dernière intervention
3 mars 2009

Salut lildan,



c'est avec du .NET 1.1 ou 2.0 ??
Messages postés
10
Date d'inscription
lundi 4 avril 2005
Statut
Membre
Dernière intervention
8 décembre 2005

C'est du .net 2003 version 7
Messages postés
28
Date d'inscription
dimanche 24 août 2003
Statut
Membre
Dernière intervention
28 septembre 2009

Salut lildan,



bon ba alors, j'ai fait des tests et sous SharpDevelop, si tu as bien

[STAThread] juste avant ta méthode main sa roule bien.

Ton code est-il lancé d'un autre thread ou méthode d'une autre form ?



sinon passe un extrait de code pour voir...



A+


CrougniMan