Bonjour

Dans mon appli je fais du multithreading en fait y en a 2, car j'ai un traitement qui me frize complètement mon UI. Alors j'effectue ce traitement sur un autre thread jusque la tout va bien. Mais à un moment du traitement l'utilisateur doit choisir un répertoire donc j'affiche une folderbrowserdialog depuis le thread qui effectue le traitement; et la sa plante j'ai le message suivant:
Le thread Actuel doit être en mode STA, avant que des appels OLE puissent être effectuées. Assurez-vous que votre fonction Main est marquée STAThreadAttribute. Cette exception n'est déclenchée que si un débogueur est attaché au processus.
Voici le code qui effectue cette opération:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
private string RechercheDossier(string NomDoc, bool DossierOk)
        {
            bool rep = false;
            string Dossier=null;
            if (DossierOk==false)
            {
                MessageBox.Show("Le chemin pour : " + NomDoc + " n'existe pas. Sélectionner un chemin valide",
                                    "CHEMIN ACCES ERRONNE", MessageBoxButtons.OK, MessageBoxIcon.Information);
                FolderBrowserDialog1.SelectedPath = ConfigurationManager.AppSettings[@"DirPathStd"];
                FolderBrowserDialog1.Description = "DOSSIER NON TROUVE";
                FolderBrowserDialog1.ShowNewFolderButton = false;
                while (!rep)
                {
                    if (FolderBrowserDialog1.ShowDialog()==DialogResult.OK)
                    {
                        Dossier = FolderBrowserDialog1.SelectedPath;
                        rep = true;
                    }
                }
            }
            else
            {
                if (_ApplyDefaultValue)
                {
                    MessageBox.Show("Le document : " + NomDoc + " n'a pas été trouvé. Vérifiez l'orthographe ou l'ajouter dans la base",
                        "DOCUMENT NON TROUVE", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                {
                    MessageBox.Show("Sélectionnez un répertoire pour vos exports!", "EXPORT A LA DEMANDE",
                        MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                FolderBrowserDialog1.SelectedPath = ConfigurationManager.AppSettings[@"DirPathStd"];
                FolderBrowserDialog1.Description = "SELECTIONNEZ UN REPERTOIRE";
                FolderBrowserDialog1.ShowNewFolderButton = false;
                while (!rep)
                {
                    if (FolderBrowserDialog1.ShowDialog()==DialogResult.OK)
                    {
                        Dossier = FolderBrowserDialog1.SelectedPath;
                        rep = true;
                    }
                }
            }
            return (Dossier);
        }
Sans doute question bête mais je sèche alors help