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 Forms Discussion :

[WS] Appel asynchrone


Sujet :

Windows Forms

  1. #1
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut [WS] Appel asynchrone
    Bonjour,

    J'ai bien lu entre autre le tuto de stephaneey sur les appels asynchrone d'un webservices mais y a des choses que je ne comprend pas.

    Tout d'abord es-ce la méthode begin/end n'est plus d'actualité dans le framework 2.0? Es-ce que c'est la méthode Async qui la remplace?

    Si oui je n'arrive pas à trouver comment faire pour que le retour de webservice attende un (mon) signal?

    J'ai trouvé ceci:

    http://www.codeguru.com/csharp/cshar...int.php/c9179/

    J'ai bien compris comment ca marchais et j'ai réussi à le faire fonctionner mais maintenant j'aimerais bien pouvoir déclencher mon événement seulement quand j'ai fini d'éxécuter mes autres lignes de code.

    Pouvez-vous m'éclairer sur ce sujet?

    Merci

    Thierry
    "Life is short don't forget to inhale"
    Mais: "Mieux vaux arriver en retard dans ce monde... qu'en avance à l'autre."

  2. #2
    Membre expérimenté Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Points : 1 379
    Points
    1 379
    Par défaut
    Lien intéressant.
    Moi c'est ta question que je ne comprend pas

    Ou plutôt j'ai peur de comprendre : en fait tu veux demander qqch à ton web service, et récupérer le résultat seulement quand ça te chante ?

    Si oui, y'a un pb de conception :
    * Où le web service va-t-il stocker les données en attendant que tu sois prêt ?
    Sais-tu qu'un web service est sensé être stateless (sans état), donc il ne doit rien stocker
    Imagine que des centaines de gens fassent pareil sur le même web service, que va-t-il se passer ?

    Bref, ce que tu veux c'est "bufferiser" les résultat en attendant d'en avoir besoin (j'imagine que tu lances l'appel un peu avant histoire d'accélérer les choses).
    Pour ce faire, il faut non pas que cette bufferisation se passe dans le Web Service (le pauvre, il a des dizaines d'autres clients à servir), mais dans ton application.
    C'est dans ton appli qu'il faut rajouter une couche entre le web service et le reste de ton appli, qui sera chargée de cette bufferisation.

  3. #3
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut
    Désolez c'est vrai c'est moi qui est mal compris.Je t'explique car en voyant ceci dans le tuto de stephaneey j'ai lu ceci:

    //Déclaration d'un objet résultat d'appel asynchrone et démarrage asynchrone de l'appel*/
    IAsyncResult Reponse = petitExemple.BeginAdditionne(10,15,null,null);
    Response.Write("Le traitement continue");
    /**************************************************
    * Ici vous pouvez exécuter n'importe quelle code *
    * ************************************************/
    /*Ici vous bloquez l'exécution du code jusqu'à ce que
    * la réponse de l'appel asynchrone a été obtenue */
    Reponse.AsyncWaitHandle.WaitOne();
    /*Ici vous récupérez la réponse --> 25*/
    reponse_webservice.Text=petitExemple.EndAdditionne(Reponse).ToString();
    J'ai capté a l'envers c'est le code qui doit attendre le retour du ws et non le ws qui doit attendre que le code soit prêt à recevoir ....

    Donc tu as raison et moi j'ai mal compris. C'est faisable avec des buffers? T'as un départ pour m'aider?

    Es-ce que c'est affirmation est correcte ou pas?
    Tout d'abord es-ce la méthode begin/end n'est plus d'actualité dans le framework 2.0? Es-ce que c'est la méthode Async qui la remplace?
    Merci
    "Life is short don't forget to inhale"
    Mais: "Mieux vaux arriver en retard dans ce monde... qu'en avance à l'autre."

  4. #4
    Membre expérimenté Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Points : 1 379
    Points
    1 379
    Par défaut
    Je ne sais pas si begin/end est d'actualité. Je n'ai jamais fait d'appels asynchrones, mais le lien que t'as envoyé m'a inspiré, merci

    Sinon pour un buffer, bein c'est juste une classe qui contient des données.
    Genre un objet "DataManager" qui a une méthode "DemanderLesDonnées" (l'appel asynchrone) et deux propriété "DonnéesPrêtes" et "Données", la seconde te retournant ta datatable.

    La bufferisation est faite dans les champs de cette classe. Ca va te stocker les données en attendant que tu t'en serves.

  5. #5
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut
    Ok je vois je vais essayer...

    Merci
    "Life is short don't forget to inhale"
    Mais: "Mieux vaux arriver en retard dans ce monde... qu'en avance à l'autre."

Discussions similaires

  1. appel asynchrone dans le thread principal
    Par mrrenard dans le forum C#
    Réponses: 6
    Dernier message: 05/04/2007, 09h07
  2. session avec appel asynchrone
    Par netounet dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 11/03/2007, 14h49
  3. [C#]théorie appel asynchrone
    Par ddoc dans le forum Windows Forms
    Réponses: 1
    Dernier message: 14/05/2006, 15h43
  4. Appel Asynchrone/Synchrone
    Par Dry dans le forum CORBA
    Réponses: 3
    Dernier message: 26/04/2005, 20h43
  5. [SOAP] API pour appels asynchrones
    Par Dar Shak dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 26/04/2005, 08h57

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