Bonjour,

je situe le contexte.
j'ai une application fonctionnant sur le principe des plugins.
c'est a dire que j'ai un MAIN, qui charge et affiche des modules, ces modules étant des DLL.

dans une de ces DLL, je fais un traitement, long qui touche a l'interface graphique du module.

je procède comme suit :

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
 
        private void btnOpenFile_Click(object sender, EventArgs e)
        {
            try
            {
                ThreadStart threadDelegate = new ThreadStart(ThreadLoadingFile);
                Thread newThread = new Thread(threadDelegate);
                newThread.Start();
            }
            catch (Exception E)
            {
                throw new Exception(E.Message);
            }
        }
 
 
 
        private void ThreadLoadingFile()
        {
            try
            {
                if (this.InvokeRequired)
                {
                    this.EndInvoke(BeginInvoke(new MethodInvoker(delegate() { this.ThreadLoadingFile(); })));
                }
                else
                {
                    LoadFile();
                    PrepareText(); // traitement le plus long;
                    MessageBox.Show("TRAITEMENT FINI !");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
 
        }
ce code tourne très bien , mais pendant , l'exécution du sois-disant "Thread" , toute l'interface de mon écran reste figé, et je ne peux plus interagir avec l'interface. Je dois attendre la fin du traitement.
A quoi est-ce due ? est du au fait que ce soit une DLL ...

Merci d'avance de votre aide.