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 :

Singleton et construction async


Sujet :

C#

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 21
    Par défaut Singleton et construction async
    Bonsoir à tous,

    Je me relance dans le C# et je tente d'avoir une approche objet bien rigoureuse pour mon application.

    Mais je me suis vite retrouvé bloqué, voici la situation:

    J'ai une classe DataSource qui permet d'instancier une collection d'objets grâce à une méthode async qui lit un fichier .json et ajoute les objets à la collection.

    Quand j'appelle cette méthode sur la MainPage pas de problème, la collection est bien construite.

    Maintenant j'aimerais exploiter cette collection dans le constructeur d'une autre classe et je n'y arrive pas. J'ai l'impression de ne pas savoir vraiment ce que je fais. La méthode permettant de récupérer la collection est async, donc inutilisable dans un constructeur si j'ai bien compris?

    De plus je voudrai faire de cette collection un singleton mais je suis toujours bloqué par le côté async de la chose.

    J'espère avoir été clair, j'ai cherché toute la soirée

    En espérant que quelqu'un trouve une piste!

    Merci!

  2. #2
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 122
    Par défaut
    Bonjour,

    je ne suis pas sûr de ton comprendre mais en gros, pour ton côté asynchrone, il va te falloir passer par du multi-threading.

    Prends l'exemple d'un jeu vidéo. En mono-thread, il faut attendre que tout soit chargé pour utiliser le produit pleinement.
    En multi-thread, ca va s'alimenter en parallèle et donc de façon non prédictive. Cela implique que, par exemple, l'objet que tu veuilles afficher à l'écran ne soit pas encore chargé et que ses textures non plus. De ce fait, il faut prendre en compte la partie visuelle de la partie logique. (ie, ce n'est pas parce que l'objet n'est pas chargé que l'intelligence ou le joueur derrière ne peut pas te tuer).

    Donc dans ton cas :
    ta fonction de chargement doit être en dehors du constructeur. (regarde les BackgroundWorkers pour le multi-thread). Ensuite, ta fonction doit être capable de savoir s'il reste des éléments à charger.
    A partir de là, soit ta deuxième doit venir interroger régulièrement pour savoir s'il y a des nouvelles données soit être notifiée pr ta première classe que des nouvelles données ont été ajoutées (et éventuellement lesquelles).

    J'espère que ce début de piste va t'aider.

    Vincent

  3. #3
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 198
    Par défaut
    si plusieurs choses doivent utiliser ton singleton, le mieux est de faire un genre d'event quand il est pret, ou alors bloquer ceux qui attendent après
    et donc un factory pour créer ton singleton, le factory s'occupant de démarrer un nouveau thread

    attention au multithreading, si plusieurs threads viennent demander au factory l'instance, il ne faut pas démarrer plusieurs threads de création (lock, readerwriterlockslim ...)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

Discussions similaires

  1. Construction d'un Async TreePanel
    Par anis gaied dans le forum GWT et Vaadin
    Réponses: 0
    Dernier message: 28/06/2011, 12h14
  2. [singleton] construction de l instance
    Par ZaaN dans le forum C++
    Réponses: 6
    Dernier message: 20/01/2007, 02h29
  3. [JBuilder 7] Construction d'executable natif
    Par renaudfaucon dans le forum JBuilder
    Réponses: 3
    Dernier message: 24/11/2006, 22h28
  4. [JBuilder 9] Construction d'exécutables natifs
    Par jamloum dans le forum JBuilder
    Réponses: 3
    Dernier message: 10/10/2003, 11h16
  5. [jAPI]Probleme de construction
    Par exe dans le forum C++Builder
    Réponses: 10
    Dernier message: 07/08/2003, 10h03

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