为其他应用程序进行同步调用

时间:2010-03-11 14:34:16

标签: c# .net ipc

我需要从我的代码中调用其他程序。

我需要等到它完成(同步通话)。

我怎么能这样做?

非常感谢。

2 个答案:

答案 0 :(得分: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();

答案 1 :(得分:0)

除非您明确地进行异步,否则调用将是同步的(因此阻止当前线程)。执行这些操作的详细信息取决于您正在使用的应用程序通信机制的选定应用程序。

这可能是:

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

还有更多。所有这些都允许您等待回复。

但具体情况非常不同(就像你使用每种细节时一样),所以如果没有更多关于你想要实现的通信类型的细节,那么就不能更具体了。