Arreter l'éxécution d'un module en clickant sur un bouton
olivierbalagizi
Messages postés40Date d'inscriptionsamedi 19 mars 2005StatutMembreDernière intervention10 février 2011
-
14 févr. 2007 à 09:33
MorpionMx
Messages postés3466Date d'inscriptionlundi 16 octobre 2000StatutMembreDernière intervention30 octobre 2008
-
14 févr. 2007 à 09:44
Bonjour chers programmeurs
J'ai un petit proglème :
Sur un formulaire qui calcule la paie de 20 000 employés d'une société, un bouton "Démarrer procédure" permet de lancer le calcul qui doit prendre un certain temps avant de se terminer
DemarrerProcedure_Click(object sender, System.
EventArgs e)
{
foreach(Employe emp in ArrayListEmployes)
{
calculerPaie(employe);
}
}
Si alors l'utilisateur décide d'arreter le caclul de la paie en clickant sur un bouton cmdAnnuler, qu'est-ce qu'il faut faire pour arreter la boucle? (le bouton annuler et Démarrer procédure sont sur le même formulaire)
Chez mois, on me dit que l'application ne reponds pas tant que la boucle n'est pas terminée.
Si quelqu'un voit ce que je veux dire et peut m'aider, alors merci d'avance
MorpionMx
Messages postés3466Date d'inscriptionlundi 16 octobre 2000StatutMembreDernière intervention30 octobre 200857 14 févr. 2007 à 09:44
Salut,
Dans ton cas, la boucle s'effectue dans le thread courant (celui de ta Form, en l'occurence). Il faut que tu démarres le process dans un autre Thread. Ton traitement sera alors effectué en parallele (ta Form continuera de "repondre"), et si tu veux annuler le traitement, tu n'auras qu'a appeler la méthode Abort du Thread que tu as lancé.