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:
Voici le code qui effectue cette opération: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.
Sans doute question bête mais je sèche alors help
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); }
Partager