делать синхронные звонки для других приложений - PullRequest
2 голосов
/ 11 марта 2010

Мне нужно позвонить из своего кода для какой-то другой программы.

И мне нужно подождать, пока она не завершится (синхронный вызов).

Как я могу это сделать?

Спасибо, большое.

Ответы [ 2 ]

2 голосов
/ 11 марта 2010

Попробуйте использовать метод 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 голосов
/ 11 марта 2010

Если вы явно не сделаете асинхронный вызов, вызов будет синхронным (и, следовательно, заблокировать текущий поток). Подробная информация об этом зависит от выбранного вами механизма взаимодействия приложения с приложением.

Это может быть:

  • TCP / IP
  • HTTP
  • WCF
  • SharedMemory
  • Именованные каналы

и многое другое. Все это позволяет вам ждать ответа.

Но особенности очень разные (как, например, когда вы будете использовать каждый из них), поэтому без более подробной информации о типе коммуникаций, которые вы пытаетесь достичь, невозможно будет конкретизировать.

...