[C# 2.0]Thread externe mais bloquant main interface
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:
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.