IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

[C#] ThreadPool quand savoir leur fin


Sujet :

Windows Forms

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 266
    Points : 135
    Points
    135
    Par défaut [C#] ThreadPool quand savoir leur fin
    Bonjour,

    Je me sers de ThreadPool pour executer une procedure dans ma boucle for j'en ouvre 9 a la fois, mais je souaihetrais savoir si il y a un moyen de savoir si il ont tous terminer leur action.

    merci


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    private void button1_Click(object sender, System.EventArgs e)
    		{
    			string resultat=string.Empty;
    			ManualResetEvent arev = new ManualResetEvent(false);
    			for (int i=1;i<10;i++)
    			{
    				ThreadPool.RegisterWaitForSingleObject(arev,new WaitOrTimerCallback(ContenuHTML),i,-1,true);
    			}
    			arev.Set();
    		}

  2. #2
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Points : 2 629
    Points
    2 629
    Par défaut
    Il n'y a pas de méthode/propriété pour cela dans la classe ThreadPool.

    Tu as le choix entre :
    - Faire ta propre classe ThreadPool (interessant si tu n'est pas pressé)
    - Gérér un compteur/couplé à un ManualResetEvent (ou Auto) dans ta fonction callback (ContenuHTML si je ne m'abuse). Ce compteur devra s'incrémenter à chaque appel de ton callback, et se décrémenter à la sortie.
    Signale l evenement lorsqu'il vaut 0 à la sortie

    Bref, il faut faire une solution à la main.

  3. #3
    Membre averti
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Février 2004
    Messages
    345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Février 2004
    Messages : 345
    Points : 420
    Points
    420
    Par défaut
    salut,
    je pense qu'il te faut utiliser waitHandle.WaitAll


    par contre pourrais-tu m'expliquer ou me donner un lien concernant le threadpool car j'essaie moi aussi de monitorer la fin de mes threads apres une boucle mais j'utilise Thread.
    merci

  4. #4
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Points : 2 629
    Points
    2 629
    Par défaut
    waitHandle.WaitAll ne fonctionne pas sur les threads du pool car certains d'entre eux ne se termine qu'à la fin du programme.

    Tu trouveras la doc du ThreadPool dans MSDN en cherchant avec google.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 266
    Points : 135
    Points
    135
    Par défaut
    merci abelman je ne suis pas préssé car je suis en VDI ( Vacance a durée indéterminer )donc je vais prendre le temps merci

    xufux pour le lien desoler je n'en ai pas car j'utilise le livre LE LANGUAGE C# de chez MICRO APPLICATION desoler

  6. #6
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Points : 2 629
    Points
    2 629
    Par défaut
    Il y a pas mal d'exemple de threadpool maison sur le net
    http://www.thecodeproject.com/csharp...ThreadPool.asp

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 266
    Points : 135
    Points
    135
    Par défaut
    super merci beaucoup c'est vraix que je ne pense pas assez a ce site remplit de bon truc.

    Merci a toi et bonne journée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Savoir la fin des threads dans un threadpool
    Par Masmeta dans le forum C#
    Réponses: 3
    Dernier message: 02/07/2013, 14h56
  2. Réponses: 3
    Dernier message: 02/05/2011, 12h53
  3. Insérer plusieurs PJ dans outlook sans savoir leurs directions
    Par sylvain5923 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/11/2010, 19h27
  4. Réponses: 2
    Dernier message: 29/07/2009, 23h09
  5. Savoir la fin d'execution d'une fonction asynchrone
    Par winnyzeboss1 dans le forum C++
    Réponses: 9
    Dernier message: 20/03/2009, 14h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo