Мне нужно позвонить из моего кода для какой-либо другой программы., делая синхронные вызовы для других приложений
И мне нужно подождать, пока он закончится (синхронный звонок).
Как я могу это сделать?
Спасибо, много.
Мне нужно позвонить из моего кода для какой-либо другой программы., делая синхронные вызовы для других приложений
И мне нужно подождать, пока он закончится (синхронный звонок).
Как я могу это сделать?
Спасибо, много.
Попробуйте использовать метод 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();
Как я могу отправить аргументы? –
Добавил его в код выше. Эта ссылка показывает пару различных способов сделать это: http://msdn.microsoft.com/en-us/library/system.diagnostics.process.aspx –
Если вы явно не сделать асинхронный вызов будет синхронным (и, следовательно, блокировать текущий поток). Детали их выполнения зависят от выбранного приложения к механизму связи с приложениями, который вы используете.
Это может быть:
и многое другое. Все это позволяет подождать ответа.
Но специфика очень различна (как и когда вы будете использовать каждый), поэтому без подробностей о типе сообщений, которые вы пытаетесь достичь, не может быть более конкретным.
Мне нужно только знать, что она закончила работу. –
Вы заинтересованы в межпроцессной связи, да? http://en.wikipedia.org/wiki/Inter-process_communication – FrustratedWithFormsDesigner
Обе веб-службы и службы WCF поддерживают синхронную связь. Как это делает .Net. –