Я пытаюсь поместить стандартный вывод из nmap в приложение окна WPF (в точности текстовое поле). Я пытаюсь использовать Dispatcher.Invoke, но когда начинается процесс nmap, все просто зависает. Когда я попробовал это в консольном приложении (без Invoke), все работало просто отлично, я думаю, что это проблема с методом Invoke. Сам Nmap работает и заканчивает свою работу, но в моем окне ответа нет.
Вот код, который я использую:
Process nmap = new Process();
nmap.StartInfo.FileName = Properties.Settings.Default.NmapResidentialPath;
nmap.StartInfo.Arguments = arguments.ToString();
nmap.StartInfo.UseShellExecute = false;
nmap.StartInfo.RedirectStandardOutput = true;
nmap.OutputDataReceived += new DataReceivedEventHandler(nmap_OutputDataReceived);
nmap.Start();
nmap.BeginOutputReadLine();
nmap.WaitForExit();
nmap.Close();
И метод обработчика событий:
void nmap_OutputDataReceived(object sender, DataReceivedEventArgs e)
{
if (!String.IsNullOrEmpty(e.Data))
{
this.Dispatcher.Invoke(DispatcherPriority.Normal, (Action)(() => nmapOutput.Text += "\n" + e.Data));
}
}