2010-03-11 61 views
2

我需要從我的代碼中調用其他程序。爲其他應用程序進行同步調用

我需要等到它完成(同步呼叫)。

我該怎麼做?

非常感謝。

+0

您有興趣進行進程間通信嗎? http://en.wikipedia.org/wiki/Inter-process_communication – FrustratedWithFormsDesigner 2010-03-11 14:39:36

+0

Web服務和WCF服務都支持同步通信。與.Net遠程處理一樣。 – 2010-03-11 14:41:13

回答

2

嘗試使用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

我如何發送參數? – 2010-03-11 14:43:40

+0

將它添加到上面的代碼中。這個鏈接顯示了幾種不同的方法:http://msdn.microsoft.com/en-us/library/system.diagnostics.process.aspx – 2010-03-11 14:47:46

0

除非你明確地做了一個異步調用將是同步的(因此阻止當前線程)。這些操作的細節取決於所使用的應用程序通信機制。

這可能是:

  • TCP/IP
  • HTTP
  • WCF
  • 共享內存
  • 命名管道

等等。所有這些讓你等待迴應。

但具體情況是非常不同的(因爲當你使用每個),所以沒有更多的細節你試圖達到的通信類型不能更具體。

+0

我只需要知道它已經完成了它的工作。 – 2010-03-11 14:46:56

相關問題