2010-03-11 6 views
2

Je dois appeler à partir de mon code pour un autre programme.faire des appels synchrones pour d'autres applications

Et j'ai besoin d'attendre jusqu'à ce qu'il se termine (appel synchrone).

Comment puis-je le faire?

Merci beaucoup.

+0

Vous êtes intéressé par la communication interprocessus, oui? http://en.wikipedia.org/wiki/Inter-process_communication – FrustratedWithFormsDesigner

+0

Les services Web et les services WCF prennent en charge la communication synchrone. Comme le fait Internet à distance. –

Répondre

2

Essayez d'utiliser la méthode WaitForExit.

Process p = new Process(); 
// Redirect the error stream of the child process. 
p.StartInfo.UseShellExecute = false; 
p.StartInfo.RedirectStandardError = true; 
p.StartInfo.FileName = "OtherProgram.exe"; 
p.StartInfo.Arguments = "My Arguments"; 
p.Start(); 
// Wait for the child process to exit. 
p.WaitForExit(); 
+0

Comment puis-je envoyer des arguments? –

+0

Ajouté dans le code ci-dessus. Ce lien montre quelques manières différentes de le faire aussi bien: http://msdn.microsoft.com/en-us/library/system.diagnostics.process.aspx –

0

Sauf si vous faites explicitement asynchrone l'appel sera synchrone (et donc bloquer le thread courant). Les détails de ces opérations dépendent de l'application sélectionnée au mécanisme de communication de l'application que vous utilisez.

Cela pourrait être:

  • TCP/IP
  • HTTP
  • WCF
  • SharedMemory
  • Named Pipes

et beaucoup plus. Tout cela vous permet d'attendre une réponse. Mais les spécificités sont très différentes (comme lorsque vous utiliseriez chacun), donc sans plus de détails sur le type de communications que vous essayez de réaliser, on ne peut pas être plus précis.

+0

Je dois seulement savoir qu'il a fini son travail. –

Questions connexes