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 :

Multi-threading: Gestion de l'UI et de WebServices.


Sujet :

Silverlight

Vue hybride

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

    Informations forums :
    Inscription : Mai 2010
    Messages : 43
    Par défaut Multi-threading: Gestion de l'UI et de WebServices.
    Bonjour,

    Je suis actuellement stagiaire en développement et programmation d'applications. Je dois réaliser une application en Silverlight et C# communicant avec un Web-service. Voila pour la petite introduction.

    J'ai déjà conçu l'interface et le plan général du fonctionnement de mon programme et j'arrive a lier sans problèmes des évènements avec mon Web-service pour récupérer des données. Je réalise donc de simples actions qui en fonctions d'une touche ou d'un bouton vont extraire une information par le Web-service. Mais maintenant je me heurte a des problèmes et questions:

    En effet je veux que toutes les 2 secondes mon programme envoie une WebRequest (un genre de KeepAlive) qui mette a jour une liste de données(amis, messages, etc...), qui sera directement retransmise sur l'UI. Je souhaite aussi pouvoir conserver des évènements indépendants comme la pressions de boutons, le remplissage de "TextBox", qui influeront eux aussi sur l'Interface Utilisateur.

    Je sais que je vais devoir utiliser le multi-threading, mais Silverlight refuse que l'on puisse changer l'UI dans un Thread de fond, il impose qu'on le face a partir du Thread UI. Je sais que je dois utiliser le "Dispatcher" et le "Dispatcher.Timer" mais je ne sais pas comment les utiliser.

    Je sollicite donc votre aide pour m'aider a réaliser une sorte de plan avec les fonctions principales que devra comporter mon programme pour pouvoir fonctionner le plus facilement possible.

    Merci d'avance a ceux qui m'aideront,

    Ephismen.

    [EDIT] Une petite édition pour signaler que je suis en SL4, Visual Studio 2010 et .NET Framework 4, pas forcement important mais on ne sais jamais.

  2. #2
    Membre Expert
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Par défaut
    Des infos sur le DispatcherTimer avec un exemple

    http://msdn.microsoft.com/en-us/libr...er(VS.95).aspx

    Sinon tu peux utiliser aussi un Storyboard je pense...

    http://blogs.silverlight.net/blogs/m...ame-loops.aspx

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

    Informations forums :
    Inscription : Mai 2010
    Messages : 43
    Par défaut
    C'est a dire que si j'encadre mes fonctions de WebRequest et de mise a jour de l'UI avec "DispatcherTimer" cela suffira a faire communiquer mon Bakcground Thread et mon UI Thread tout en permettant a l'extérieur de ma boucle l'utilisation d'Event indépendants?

    Ephismen

  4. #4
    Membre Expert
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Par défaut
    cela suffira a faire communiquer mon Bakcground Thread et mon UI Thread
    Oui

    tout en permettant a l'extérieur de ma boucle l'utilisation d'Event indépendants
    Je ne vois pas trop ce que tu veux dire...

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

    Informations forums :
    Inscription : Mai 2010
    Messages : 43
    Par défaut
    Non mais je me rends compte que la fin de ma question n'a pas trop de sens. Bon je vais tester cette méthode et je reviendrais lorsque j'aurais réussi.

    Merci, Ephismen.

  6. #6
    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
    Sinon tu pourrais faire un WCF en polling duplex (http://msdn.microsoft.com/en-us/libr...8VS.95%29.aspx) qui enverrait des mises à jours toutes les 2 secondes.

    Sinon oui le DispatcherTime avec un délai de 2 secondes fonctionne.

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

Discussions similaires

  1. Tri multi-threadé
    Par Tifauv' dans le forum C
    Réponses: 8
    Dernier message: 28/06/2007, 09h00
  2. Réponses: 2
    Dernier message: 15/05/2004, 18h33
  3. Réponses: 16
    Dernier message: 30/01/2004, 11h05
  4. [VB6][active x] faire du multi-thread avec vb
    Par pecheur dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 20/05/2003, 12h01
  5. [Kylix] exception qtinft.dll et multi-threading
    Par leclaudio25 dans le forum EDI
    Réponses: 3
    Dernier message: 27/03/2003, 18h09

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