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

Dotnet Discussion :

Comment utiliser le multithread dans mon cas?


Sujet :

Dotnet

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2009
    Messages
    204
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 204
    Par défaut Comment utiliser le multithread dans mon cas?
    Bonjour,

    Je n'ai encore jamais utilisé le multithreading dans mes developpements.

    Aujourd'hui je pense en avoir besoin. Cependant, même après plusieurs lecture d'exemples sur le net, je n'arrive pas à comprendre comment utiliser ce concept.

    Dans mon project j'ai une fonction qui écoute constamment sur un port (elle contient un web server), lorsqu'une requête arrive, je lui répond et ainsi de suite...tout ceci dans une boucle infinie.
    Mais je souhaite cependant voir ce qui se passe: si ya des erreurs etc.

    En parallèle, je souhaite effectuer des traitements indépendament de la fonction d'écoute décrite plus haut.

    Pour les deux fonctions j'ai fait en sorte de ne pas avoir à passer des paramètres.


    Merci de bien vouloir m'orienter sur une solution qui convient à ce que je souhaite faire.

  2. #2
    Membre éclairé
    Inscrit en
    Février 2004
    Messages
    363
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 363
    Par défaut
    Bonjour,

    Qui va lancer tes traitements indépendants?

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2009
    Messages
    204
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 204
    Par défaut
    C'est moi même, c'est à dire l'utilisateur:
    Je lance l'écoute puis je passe au traitement derrière

  4. #4
    Membre éclairé
    Inscrit en
    Février 2004
    Messages
    363
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 363
    Par défaut
    Dans ce cas, j'aurais tendance à dire:

    Un main thread qui va lancer les traitements dans ce même thread, ou dans des threads séparés, tout dépend de la nature des traitements.
    Ce main thread va également lancer au début de son exécution un seul et unique thread qui va s'occuper uniquement de l'écoute de connexion client.
    A la connexion d'un client, le thread d'écoute va lancer un autre thread qui sera dédié à la communication avec le nouveau client.

  5. #5
    Membre confirmé
    Inscrit en
    Décembre 2009
    Messages
    204
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 204
    Par défaut
    Ce que j'ai fais comme implémentation à présent:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim EcouteClients As EcouteClient = New EcouteClient
     
    Dim Thread1 As New System.Threading.Thread(AddressOf EcouteClients.Ecoute)
     
    Thread1.Start()
     
    FonctionTraitement()

    Le thread1 je veux qu'il tourne en arrière plan, sans m'en occuper, durant tout le traitement de la deuxième fonction.
    Donc je ne sais pas si ce que j'ai fait est une bonne solution.

  6. #6
    Membre éclairé
    Inscrit en
    Février 2004
    Messages
    363
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 363
    Par défaut
    La classe Thread possède une propriété IsBackground (par défaut à false), que tu peux setter à true.
    La différence est que quand tu vas stopper l'application, tous tes threads background vont être automatiquement stoppés, alors que si tu laisses la propriété à false, et que tu stoppes l'application, le thread continueras de tourner.

  7. #7
    Membre confirmé
    Inscrit en
    Décembre 2009
    Messages
    204
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 204
    Par défaut
    Je viens de voir qu'il existe une class appelée BackgroundWorker.

    Il me semble que cela peux s'appliquer à mon cas

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

Discussions similaires

  1. Comment utiliser les thread dans ce cas ?
    Par ketchupi dans le forum Threads & Processus
    Réponses: 5
    Dernier message: 03/06/2011, 00h56
  2. [PHP 5.2] Comment retinrer les accent dans mon cas
    Par pierrot10 dans le forum Langage
    Réponses: 1
    Dernier message: 15/06/2009, 15h56
  3. Comment utiliser les datasets dans mon cas
    Par dachir dans le forum ASP.NET
    Réponses: 5
    Dernier message: 13/01/2009, 09h44
  4. [Tableaux] Comment utiliser un tableau dans ce cas
    Par Equinoxe5 dans le forum Langage
    Réponses: 1
    Dernier message: 19/08/2007, 22h13
  5. Comment aborder les collisions dans mon cas?
    Par MonsieurHelmut dans le forum Physique
    Réponses: 4
    Dernier message: 18/02/2007, 16h56

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