Hello,
j'ai fait des recherches sur google, forum, sur l'utilisation des threads et je n'arrive toujours pas a comprendre comment le mettre en oeuvre dans mon cas.
j'explique, j'ai une form qui contient plusieurs textboxes.
j'ai un bouton qui me permet de creer un .doc et ensuite converti ce .doc en PDF.
Le probleme c'est que cette petite fonctionnalité fige quelques instant l'application complete.
J'ai donc pensé a faire ce traitement dans un thread separé.
(je suis tombé sur un post qui expliquais cela http://www.developpez.net/forums/d63...ultithreading/ mais je n'ai toujours pas compris.
j'ai l'erreur suivante quand je tente de passer le traitement au thread:
Vous allez me dire ,Opération inter-threads non valide: le contrôle 'frmLauncherBo' a fait l'objet d'un accès d'un thread autre que celui sur lequel il a été créé.mais cela ne me parle pas vraiment.....il suffit de sortir tout le code qui touche de près ou de loin aux composants winform dans une fonction externe de d'y ajouter la vérification à l'aide de InvokeRequiered
tomlev a parlé de BackgroundWorker qu'est ce que cela est?
Comment cmet on en oeuvre ce mechanisme.
Merci de votre aide et de vos lumiere.
un extrait de mon code ;
j'ai declaré mon thread
puis defini la methode StartThread:
Code : Sélectionner tout - Visualiser dans une fenêtre à part private Thread _threadPDF;
et la ou j'appel d'habitude ExportToPDF j'appel StartThread
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 private void StartThread() { // ThrFunc est la fonction exécutée par le thread. _threadPDF = new Thread(new ThreadStart(ExportToPDF)); // Il est parfois pratique de nommer les threads surtout si on en créé plusieurs. _threadPDF.Name = "Thread1"; // Démarrage du thread. _threadPDF.Start(); }
Partager