Je fais un travail COM Interop avec Excel et autres logiciels Office Automation.COM Interop - Attendez Excel pour terminer l'opération
Un collègue m'a dit que je dois attendre ces serveurs d'automatisation pour être prêt après une commande pour eux.
Cependant, je ne vois pas le but de ce que ne pas bloquer tous les appels jusqu'à ce que le serveur d'automatisation complète la tâche donnée?
Par exemple, je normalement écrire:
Dim o as AutomationObject = AutomationServer.CreateObject(x, y, z) o.Property ' could throw COM exception!!????
Mon collègue dit que je dois dormir après cet appel parce que le serveur d'automatisation pourrait encore travailler sur la création et l'initialisation de l'objet.
Dim o as AutomationObject = AutomationServer.CreateObject(x, y, z) Threading.Sleep(5000) ' wait for AutomationServer to "become ready" o.Property ' could still throw COM exception!!????
Le problème que j'ai avec cela est que les appels AutomationServer devraient bloquer jusqu'à ce que le AutomationServer se termine ou se termine ce qu'il travaillait ou à tout le moins, il devrait être une boucle de vérifier si « o » est rien, mais cela n'a aucun sens car une fois que l'appel revient à sa fin!
Ma question est, est-il un avantage à dormir après un appel AutomationServer? Existe-t-il une méthode pour "attendre" jusqu'à la fin de l'AutomationServer (s'il ne bloque pas)?