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

Windows Communication Foundation .NET Discussion :

Callback et UI


Sujet :

Windows Communication Foundation .NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2007
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 113
    Par défaut Callback et UI
    Bonjour tout le monde,

    J'ai un soucis avec mon callback contrat.

    Mon Winform se fige lors de l'appel.

    Etant donné que mon traitement est long, c'est assez pénalisant pour l'utilisateur.

    Voici comme je procède :

    Je créer deux interface sur mon serveur :

    Une interface de service avec ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CallbackContract = typeof(IserviceRappel))]
    Et une interface de rappel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    [OperationContract(IsOneWay = true)]
    void Bonjour(string message);
    Sur l'implémentation de mon service je mets :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    [ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Reentrant, InstanceContextMode = InstanceContextMode.PerCall)]
    [CallbackBehavior(UseSynchronizationContext = true)]
    public class Service1 : IService
    Ensuite sur mon client :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    
    private delegate void MAJ(string a);
    MAJ miseajour;
    DuplexChannelFactory<client.ServiceReference1.IService> channelFactory = null;
    IService service;
    
    public Form1()
    {
                InitializeComponent();
                channelFactory = new DuplexChannelFactory<IService>(this, "WSDualHttpBinding_IService");
                service =  channelFactory.CreateChannel();
               miseajour = new MAJ(maj);
    
    ....
    ...
    
    
    public void Bonjour(string message)
            {
               //test = message;
                this.Invoke(miseajour, new object[] { message });
            }
            
    
            public void maj(string a)
            {
                this.label1.Text = a;
            }

    Dans les différentes sources sur le net, j'ai vu qu'il fallait créer un servicehost.

    Est ce que cette étape est obligatoire ?

    Mon winform ne peut il pas consommer mon webservice de façon directe ?

    Et surtout n'y a t il pas un moyen de lancer ma requête client sans que celui ci ne se fige ?

    Merci d'avance de vos suggestions.

  2. #2
    Membre confirmé
    Inscrit en
    Juillet 2007
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 113
    Par défaut
    Bonjour,

    J'ai trouvé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     [OperationContract(IsOneWay=true)]
    couplé avec des contrats de rappel

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

Discussions similaires

  1. Fonction callback
    Par saibe dans le forum Linux
    Réponses: 4
    Dernier message: 19/01/2012, 10h41
  2. [Débutant] fonction CALLBACK
    Par tlt dans le forum MFC
    Réponses: 2
    Dernier message: 29/10/2004, 16h55
  3. Callback
    Par el_diablos dans le forum Langage
    Réponses: 2
    Dernier message: 09/07/2004, 08h48
  4. Fonction callback dans une classe
    Par julian_ross dans le forum MFC
    Réponses: 8
    Dernier message: 02/03/2004, 11h42
  5. [MFC] Un callback dans des MFC ...
    Par elsargento dans le forum MFC
    Réponses: 3
    Dernier message: 18/02/2004, 16h04

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