Решено - C# получить информацию о процессе EventHandler
Я запускаю несколько процессов и хочу узнать, какой процесс называется OutputHandler, но я не могу получить никакой информации о процессе отправки. Когда я пытаюсь прочитать свойство, оно всегда выдает InvalidOperationException
void ExecString()
{
using (Process process = new Process())
{
process.StartInfo.FileName = executeExe;
process.StartInfo.Arguments = string.Format("{0}/{1}@{2} @{3}", parameter0, parameter1, parameter2, parameter3);
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;
process.StartInfo.CreateNoWindow = true;
process.EnableRaisingEvents = true;
process.OutputDataReceived += OutputHandler;
process.Start();
process.BeginOutputReadLine();
}
}
void OutputHandler(object sendingProcess, DataReceivedEventArgs output)
{
try
{
OutputText = output.Data;
var tmpProcess = (Process)sendingProcess;
var testId = tmpProcess.Id; // Throw Exception
}
catch (InvalidOperationException e)
{
OutputText = e.Message;
}
}
1 ответ
Можете ли вы попробовать это, это может помочь вам;
Process currentProcess = Process.GetCurrentProcess();
var pid = currentProcess.Id;