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 :

Constructeurs et destructeurs exécutés dans des threads différents


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 12
    Par défaut Constructeurs et destructeurs exécutés dans des threads différents
    Bonjour à tous,

    J'ai l'habitude, lorsque c'est nécessaire, de mettre dans le destructeur de mes objets, le pendant pour la libération des traitements que je mets dans le constructeur. Je pense par exemple à des compteurs pour la manipulation d'objets statiques, l'ouverture et la fermeture de fichiers, etc.
    Or, comme le destructeur est appelé dans un thread différent de celui du constructeur, ça peut poser des pbs.

    Ma question : Comment vous y prenez-vous pour gérer ce genre de cas ?
    Je veux bien
    • ajouter des lock() pour protéger les variables partagées,
    • ou rajouter des méthodes Fermer(), end() aux objets pour les appeler au bon moment,

    mais c'est dommage qu'il n'y ait rien d'automatisé...

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2009
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2009
    Messages : 317
    Par défaut
    Je me trompes peut-être mais est ce que les destructeurs ne doivent plus implémentés car les objets sont sensé être détruit par le GC ?

  3. #3
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    En effet, le destructeur est très fortement déprécié en C#
    On parle bien du destructeur ou du Dispose() ici?

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Août 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 12
    Par défaut
    Citation Envoyé par Aeronia Voir le message
    Je me trompes peut-être mais est ce que les destructeurs ne doivent plus implémentés car les objets sont sensé être détruit par le GC ?
    Je parle bien du destructeur.
    Je comprends bien les implications du GC, les Dispose(), les non-garanties quant à la date d'appel, etc.
    Cependant, je trouve ça dommage qu'on ne puisse pas de temps en temps automatiser des traitements à la libération de l'objet (dans le bon thread).
    Si tout le monde est unanime, j'éviterai ou je me protégerai

Discussions similaires

  1. [C#][2.0] Sauvegarde d'un DataSet dans des threads différents
    Par Pilloutou dans le forum Framework .NET
    Réponses: 9
    Dernier message: 23/04/2007, 14h17
  2. Comparaison de 2 tables se trouvant dans des db différentes.
    Par Empty_body dans le forum Langage SQL
    Réponses: 3
    Dernier message: 07/03/2007, 18h30
  3. Réponses: 1
    Dernier message: 27/06/2006, 13h09
  4. [VB.NET] Création MDIChild dans un thread différent
    Par XnoTonio dans le forum Windows Forms
    Réponses: 5
    Dernier message: 19/05/2006, 15h53
  5. Comparaison de 2 dates dans des formats différents
    Par frdek dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/02/2005, 15h05

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