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

C# Discussion :

[C#] Peut-on étendre la classe system.Thread ?


Sujet :

C#

  1. #1
    Membre averti Avatar de AiSpirit
    Inscrit en
    Mai 2005
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 41
    Par défaut [C#] Peut-on étendre la classe system.Thread ?
    Bonjour.
    J'aimerais faire un thread avec 2 méthodes :
    une pour start() et une pour stop().
    Car dans start(), je fais une opération similaire à l'ouverture de fichier, et donc il faudrait que je le ferme dans stop().

    Comment peut on faire pour spécifier une méthode d'arrêt ? Genre est-il possible de passer tout un objet dans un autre Thread, ou seulement une méthode (System.Thread, méthode Start(context)).

    Je pense qu'hériter de Thread serait peut être pas mal (cf.Java, mais si j'ai bien compris, celà n'est pas possible en c# )

    Merci pour vos infos !

  2. #2
    Membre averti Avatar de AiSpirit
    Inscrit en
    Mai 2005
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 41
    Par défaut
    Pour être plusprécis :
    j'ai par exemple la classe suivante à executer dans un thread à part :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public class laClasse{
      object obj;
     
      public void start(){
          //perform start
          obj. ...
          obj.Start();
      }
     
      public void stop(){
          //perform stop
          obj.Stop();
       }
    }

  3. #3
    Expert confirmé
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Par défaut
    Ceci n'est pas en lien avec le langage C# mais la classe Thread du framework .Net ne peut être hérité, c'est ainsi
    Cependant si la procédure exécutée dans un thread est terminée alors celui-ci doit naturellement aussi s'achever. Il existe bien une méthode pour forcer la fin du thread mais celà reste déconseillé puisqu'il s'agit de provoquer artificiellement une exception avec Abort().

    Sinon tu auras peut être besoin d'utiliser ceci !
    Comment passer un ou plusieurs paramètres à un thread ?

  4. #4
    Membre averti Avatar de AiSpirit
    Inscrit en
    Mai 2005
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 41
    Par défaut
    C'est bien ce que je craignais ... parce que mon problème est simple :
    c'est le processus à l'originie du thread qui dit :
    début l'enregistrement
    termine l'enregistrement ....

    donc ce que j'ai esssayé de faire, c'est de faire connaitre au thread fils son durée d'execution, mais là encore, pb : comment lui dire d'enregistrer pendant la durée ? un Thread.sleep(duree) le fait attendre, mais par contre il n'enregistre plus ...

    Une idée ?

  5. #5
    Expert confirmé
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Par défaut
    As-tu regardé la question/reponse qui suivait celle de mon lien :
    Comment arrêter un thread ? et donc l'utilisation de la classe AutoResetEvent

  6. #6
    Membre averti Avatar de AiSpirit
    Inscrit en
    Mai 2005
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 41
    Par défaut
    Merci pour ce lien.
    Il me dépanne très bien pour le moment,
    mais je vais peut être modifier mon code par la suite pour passer d'une attente active (synchronisation de 1 sec sur AutoResetEvent) à une sur détection d'évenement (?). A voir, mais plus tard !

    Et ops, problème résolu

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/05/2014, 14h25
  2. Réponses: 5
    Dernier message: 11/11/2009, 16h01
  3. heritage de la classe System.Threading.Thread
    Par Minoucha2006 dans le forum C#
    Réponses: 5
    Dernier message: 08/05/2008, 12h59
  4. Réponses: 4
    Dernier message: 10/11/2005, 17h28
  5. unhandled exception class System.SecurityException
    Par the big ben 5 dans le forum Langage
    Réponses: 2
    Dernier message: 02/11/2005, 17h41

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