Bonsoir à tous,
J'aurai besoin d'un peu d'aide concernant la mise en place d'un système de multithreading, qui a pour but d'éviter que mon IHM freeze lorsque un traitement lourd ce fait.
Donc voilà, dans mon programme, j'ai une fonction qui a pour rôle de tester certaine chose, tant que cette chose n'est pas faite, ca boucle et dés que c'est bon on retourne true, cette fonction ce présente comme ceci :
public bool controlebloc(int numcontrole)
{
//ici on lieu les traitements selon le numcontrole reçu
}
Le problème est que lorsqu'un traitement ce fait, le programme boucle jusqu'à ce que ca soit fait. Durant cette période, l'interface graphique est comme freezé donc si par exemple je veux mettre en place un bouton pour interrompre le traitement, je ne peux pas. Évidement, ca serait fort utilse car comme vous l'aurez compris, si le traitement ne ce fait pas==>boucle infini==>plantage
L'idée serait donc d'isolé cette fonction dans un thread à part, afin que lorsque que les traitements ce font, le thread principal ce soit pas affecté, ce qui normalement devrait éviter un freeze de l'IHM.
J'ai été sur msdn, j'ai visité plusieurs site et voilà ce qui est ressorti :
thread1 = new Thread(new ThreadStart(laFonction));
thread1.start();
Ou encore
thread1 = new Thread(new ParameterizedThreadStart(laFonction));
thread1.start();
Pour ajouter une fonction ayant aucun paramètre, il y a aucun soucis. Par contre, vu que ma fonction est booléenne et qu'elle attend un paramètre, les méthodes ci-dessus ne sembles pas fonctionné à moins que je les utilise mal.
Concrètement, ça me dit qu'aucun surcharge est prit en compte blablabla, il y a aussi une histoire de delegate dans le message d'erreur mais ça me parle pas plus que sa étant débutant
Ouch le pavé, j'espère avoir été clair, merci !