2008-12-17 8 views
0

Je travaille avec un composant COM. Il y a une méthode qui fait cet appel au composant, et cette méthode est utilisée plusieurs fois dans mon application, pour que chaque document soit traité, cette méthode est appelée.appel à une méthode ne retourne jamais

Une chose étrange arrive tout à coup, peu importe la quantité de documents traités, il peut se produire après le traitement 60, 100 ou 300 documents, ou tout simplement ne pas se produire. La chose étrange: l'appel au composant ne retourne pas. La méthode reste bloquée dans la ligne d'appel. Connaissez-vous une particularité de COM qui pourrait causer ce problème?

+0

Comme indique Divo, il est pas tout à fait clair si oui ou non vous écrit le composant COM. Peut-être pourriez-vous fournir un contexte supplémentaire? – reuben

Répondre

1

De votre question je reçois que votre font l'automatisation COM avec des documents. Si votre objet COM est une application de traitement de documents (MS Office serait-il le bon choix?), Il se peut que l'application soit simplement bloquée par un popup.

Ce phénomène se produit assez fréquemment lorsque vous automatisez par exemple Word ou Excel. Vous devez faire plusieurs choses pour contourner ce problème (je parle ici MS Word):

  • alertes désactiver par la mise en Application.DisplayAlerts en conséquence
  • installer les produits complets pour éviter les popups Windows Installer demandant manquant dispose
  • mettre en œuvre un mécanisme de temporisation qui va tuer l'application si une boîte de dialogue modale demande l'entrée d'utilisateur. La raison en est qu'il y a certains types de popups qui ne peuvent pas être supprimés (Si vous avez besoin de plus d'informations s'il vous plaît demander).