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

Silverlight Discussion :

Gérer le progression d'un téléchargement


Sujet :

Silverlight

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Octobre 2010
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 39
    Par défaut Gérer le progression d'un téléchargement
    Bonjour,

    J'ai un petit soucis avec mon projet Silverlight. Actuellement, je télécharge un fichier xml et il arrive que mon application tente d'y accéder alors qu'il n'est pas encore télécharger. Vous vous doutez bien que si la variable est à null, je n'obtiens pas les informations dont j'ai besoin

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public static void CreateDocument()
    {
        WebClient client = new WebClient();
        client.OpenReadAsync(new Uri("config.xml", UriKind.Relative));
        client.OpenReadCompleted += new OpenReadCompletedEventHandler(client_OpenReadCompleted);
    }
     
    private static void client_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
    {
        Document = XDocument.Load(e.Result);
    }
    J'aimerai que les méthodes voulant accéder à la variable Document soient misent en attentes lors du téléchargement.

    Une piste à explorer ?
    Merci d'avance

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par Joffrey Kern Voir le message
    J'aimerai que les méthodes voulant accéder à la variable Document soient misent en attentes lors du téléchargement.
    Quelles méthodes ? Quand sont-elles appelées ?

  3. #3
    Membre averti
    Inscrit en
    Octobre 2010
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 39
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public static ModuleXml GetModuleByName(String name)
    {
        return (from e in Document.Root.Descendants("module")
                        where (string)e.Attribute("name").Value == name
                        select new ModuleXml
                        {
                            Name = e.Attribute("name").Value,
                            Key = e.Attribute("key").Value,
                            //Version = e.Attribute("version").Value
                        }).SingleOrDefault();
    }
    Par exemple, cette méthode est appellé lors de la création de la MainPage. Généralement, la variable Document est à null car le XML n'a pas fini d'être téléchargé.
    Au préalable, dans le App.xaml.cs, lors du démarrage de l'application, je lance la méthode CreateDocument() décrite dans mon premier post.

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Tu pourrais pas tout simplement appeler GetModuleByName à partir de client_OpenReadCompleted ? Comme ça tu es sûr que le document est bien téléchargé

  5. #5
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Surtout qu'il faut bien comprendre que le developpement en Silverlight est majoritairement asynchrone. Tu vas avoir des nombreux cas comme celui-ci et il faudra bien les resoudre.

    La solution de tomlev est de loin la meilleure. Fais ton traitement sur ton fichier qu'une fois qu'il est telecharge...

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    C# 5 va sans doute faciliter un peu tout ça
    (quoi que je ne sais pas si ce sera supporté en SL...)

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

Discussions similaires

  1. [Net::FTP] progression téléchargement
    Par djibril dans le forum Programmation et administration système
    Réponses: 6
    Dernier message: 29/01/2008, 14h28
  2. Gérer des téléchargement en multitache
    Par Stef784ever dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 18/12/2007, 14h42
  3. Réponses: 6
    Dernier message: 29/05/2007, 17h41
  4. Comment visualiser la progression d'un téléchargement ?
    Par horneth dans le forum Windows Forms
    Réponses: 36
    Dernier message: 23/02/2007, 14h26

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