Je suppose que cette question est plus générale que de travailler avec des composants COM. J'ai un client .NET écrit en C# et un composant COM écrit en pure API Win32. Le côté client utilise ce composant pour effectuer certaines actions. Comment savoir sur le client que ce composant a fait son travail?
Je pense qu'il peut s'agir de socket/pipe, avec l'écriture de composant à propos des résultats, et la lecture du client à partir de celui-ci affichant la progression à l'utilisateur. Quelle est la meilleure façon de procéder?Comment savoir les résultats de travail avec le composant COM?
Répondre
Avec COM, vous ne contrôlez pas les données circulant sur le socket. Vous avez une interface de type RPC, c'est-à-dire que votre client appelle une méthode sur un serveur, ce qui renvoie un résultat. Il n'y a pas de notion de résultats en continu. Pour faire ce que vous mentionnez, vous devez concevoir l'interface implémentée par le client, par exemple, au démarrage d'un travail, le serveur renvoie un identifiant et exécute le travail de manière asynchrone. Ensuite, le client peut régulièrement interroger le serveur, en donnant l'identifiant en tant que paramètre et en demandant au serveur la progression réelle.
Une autre façon de procéder consiste à implémenter un point de connexion sur le serveur, qui est essentiellement un mécanisme de rappel, afin que le serveur puisse informer le client de sa progression. Voir CodeProject 1 ou CodeProject 2 pour plus d'informations.
- 1. Erreur de composant COM
- 2. Comment utiliser un composant COM de VB.NET?
- 3. Composant WCF COM +
- 4. Comment UAC élever un composant COM avec .NET
- 5. Comment supprimer un composant COM + d'une application COM + par programme
- 6. Empêchez le composant COM Delphi d'afficher MessageBox()
- 7. Windows Installer pour le composant COM
- 8. Enregistrer un composant C# COM?
- 9. Comment fermez-vous l'objet com Excel et enregistrez le travail?
- 10. Comment les threads sont-ils créés dans un composant COM?
- 11. Comment savoir si le composant VBA d'Office est installé?
- 12. Server.MapPath dans un composant COM
- 13. .net installateur de composant pour COM interop
- 14. Composant COM + appelant d'autres composants COM + - "Impossible de charger le type"
- 15. COM: comment obtenir plus de détails sur les erreurs COM?
- 16. Comment améliorer les résultats de recherche avec QueryElevationComponent?
- 17. Exception COM sur "composant personnalisé" - comment identifier DLL?
- 18. Le travail Cron ne stocke pas les erreurs/les résultats à consigner
- 19. Récupération de la fabrique de classe COM pour le composant avec CLSID
- 20. Ajouter par programme le rôle d'utilisateur au composant COM + (C#)
- 21. Comment obtenir le ProgID d'un composant COM à partir de C#?
- 22. Composant .NET appelant Classic.ASP via COM
- 23. instanciation composant COM en C# - Erreur 80070002
- 24. Comment savoir si un travail de copie est terminé?
- 25. Comment afficher les panneaux avec le composant dans l'image
- 26. Comment appeler un composant COM en utilisant JavaScript dans Mozilla?
- 27. comment savoir quand un travail dans un thread est terminé?
- 28. Winforms dérobant des séquences de touches du composant COM?
- 29. Diagramme d'activité UML: afficher les résultats du travail
- 30. Les proxies NHibernate empêchent le composant Castle.Validator de faire son travail