Problème : Le thread actuel doit être en mode STA
Bonjour,
Voici l'erreur que j'ai :
"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".
Voici le contenu de program.cs
Code:
1 2 3 4 5 6 7 8
|
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Authentification());
} |
Dans une partie de mon application (de messagerie instantannée) je crée un nouveau Thread et j'ouvre une Form Message dedans de cette façon :
Code:
1 2 3 4 5 6 7 8 9 10
|
//Thread pour l'ouverture de la fenetre message
Thread monthread;
MyThread mythread;
//ouverture de la fenêtre message dans un nouveau thread
message = new Message(this);
mythread = new MyThread(message);
monthread = new Thread(new ThreadStart(mythread.run));
monthread.Start(); |
Et dans cette fenêtre Message j'ai un bouton pour envoyé un fichier qui est censé ouvrir un openfiledialog
Code:
1 2 3 4 5 6
|
if (openFileDialog1.ShowDialog(this) == DialogResult.OK)
{
// Fichier sélectionné
chemin = openFileDialog1.FileName.ToString();
} |
Et c'est à ce moment là que j'ai l'erreur.
Alors c'est vrai que j'ai bien le
avant le Main mais le main n'ouvre pas directement ma form message donc peut être qu'il faut le lui dire autrement...
J'espère avoir été clair en tout cas n'hésitez pas pour de plus ample informations.
Merçi