p
u
b
l
i
c
i
t
é
publicité
  1. #1
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    novembre 2007
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : novembre 2007
    Messages : 634
    Points : 374
    Points
    374

    Par défaut Rendre un code synchrone / interface COM

    Bonjour,

    j'utilise une dll qui sert de wrapper d'interface COM. Il y a des méthodes de lecture / écriture asynchrone (event lancé lorsque les opérations sont terminées) et j'ai besoin de rendre ces méthodes synchrones.

    Je voulais utilisé un ManualResetEvent mais les events sont appelés dans le thread courant (du coup il faut sortir de la méthode en cours pour que l'event soit appelé...) Comment faire pour dispatcher l'event vers un thread différent ?

    Merci d'avance.

  2. #2
    Expert Confirmé
    Avatar de GuruuMeditation
    Homme Profil pro
    .Net Architect
    Inscrit en
    octobre 2010
    Messages
    1 675
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : .Net Architect
    Secteur : Conseil

    Informations forums :
    Inscription : octobre 2010
    Messages : 1 675
    Points : 3 505
    Points
    3 505

    Par défaut

    Si tu les appelle dans une Task, et que tu attend la fin de celle-ci?

    Ou alors dans un backgroundworker?
    Microsoft MVP : Windows Platform

    MCPD - Windows Phone Developer
    MCPD - Windows Developer 4

    http://www.guruumeditation.net

    “If debugging is the process of removing bugs, then programming must be the process of putting them in.”
    (Edsger W. Dijkstra)

  3. #3
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    novembre 2007
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : novembre 2007
    Messages : 634
    Points : 374
    Points
    374

    Par défaut

    Salut,

    Backgrouner : ça ne fonctionne pas.
    Task : pas essayé.

    Je viens de trouver ce site : http://geekswithblogs.net/rgray/arch...nous-call.aspx

    Il dit entre autre :

    ----
    The asynchronous (event) call has now been turned into synchronous.

    The biggest problem is the showstopper though. COM doesn’t play well using this model, thanks to it’s STA threading (I believe) and the event handler never gets called.

    Overall a great learning experience, but I still can’t call the COM wrapper object synchronously and now, admitting defeat, I am rolling my own class to calculate the StreetId.
    ----

Discussions similaires

  1. interface COM / manipulation de pointeurs
    Par slylafone dans le forum C++
    Réponses: 2
    Dernier message: 06/03/2006, 20h12
  2. utiliser l'interface COM
    Par baert dans le forum C++
    Réponses: 2
    Dernier message: 18/01/2006, 16h14
  3. RTTI:Lister les propriétés d'une interface COM
    Par zeprogrameur dans le forum Langage
    Réponses: 10
    Dernier message: 09/11/2005, 16h06
  4. Réponses: 9
    Dernier message: 03/03/2005, 14h36

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