2013-05-28 3 views
0

В моем случае есть процесс, который запускает другой процесс и подписывается на событие «Выход». Второй процесс в конце должен каким-то образом передать строку с ошибкой первому процессу. Первый процесс отобразит сообщение на экране.Как передать строку из одного процесса в другой?

Как передать строку в конце приложения таким образом, чтобы другое приложение могло читать строку и отображать ее?

+3

Использование файла может быть самым простым подходом. – David

+0

Или очередь. Возможно, MSMQ. – davenewza

ответ

2

Вы можете перенаправить поток StandardError: http://msdn.microsoft.com/en-us/library/system.diagnostics.process.standarderror.aspx

Process myProcess = new Process(); 
ProcessStartInfo myProcessStartInfo = new ProcessStartInfo("net ","use "+ args[0]); 

myProcessStartInfo.UseShellExecute = false; 
myProcessStartInfo.RedirectStandardError = true; 
myProcess.StartInfo = myProcessStartInfo; 
myProcess.Start(); 

StreamReader myStreamReader = myProcess.StandardError; 
// Read the standard error of net.exe and write it on to console. 
Console.WriteLine(myStreamReader.ReadLine()); 
myProcess.Close(); 

Исследование следующего, и выбрать тот, который подходящий для ваших потребностей лучших для вашего сценария. Я предполагаю, что вам либо нужен выход, либо ошибка, если вы передаете данные обратно в родительский процесс.

StartInfo.RedirectStandardOutput 
StartInfo.RedirectStandardError 
StartInfo.RedirectStandardInput 
+0

И как myProcess передаст ошибку? Просто напишите строку на консоли? – EngineerSpock

+0

Вы можете перенаправить больше, чем просто ошибку, если это не работает для вас. –

Смежные вопросы