#c# #process
#c# #процесс
Вопрос:
Я открываю некоторые process
и читаю его выходные данные, и я хочу передать этой функции другой параметр:
public void Start(string fileName, string arguments)
{
Process process = new Process();
process.StartInfo.FileName = fileName;
process.StartInfo.Arguments = arguments;
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;
process.StartInfo.CreateNoWindow = true;
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.OutputDataReceived = new DataReceivedEventHandler(OutputHandler);
process.ErrorDataReceived = new DataReceivedEventHandler(OutputHandler);
process.Start();
process.BeginOutputReadLine();
process.BeginErrorReadLine();
}
private void OutputHandler(object sender, DataReceivedEventArgs e)
{
App.Current.Dispatcher.Invoke((Action)delegate
{
string line = e.Data;
if (line != null)
{
}
});
}
Комментарии:
1. Вы хотите, чтобы другой метод мог считывать строку строки (или строку отправки). прямо сейчас у вас есть строка внутри частного метода, поэтому она недоступна. Вам нужно сделать строку более доступной.
2. как это сделать? и почему я не могу отправить другой параметр из моего метода Start в OutputHandler?
3. Просто переместите строку line = «»; за пределы метода OutputHandler.
4. Нет возможности передать какой-либо объект методу OutputHandler вместо объявления его как глобального?