У меня есть приложение WPF, которое используется в качестве внешнего интерфейса для запуска выполнения файла JAR.В настоящее время я делаю это с помощью BackGroundWorker, но мне не удается сообщить о ходе фонового выполнения внешнему интерфейсу.Выполнение может занять довольно много времени, в некоторых случаях важно показать прогресс клиенту.Вот часть кода:
worker = new BackgroundWorker();
worker.DoWork += worker_DoWork;
worker.ProgressChanged += new ProgressChangedEventHandler(ProgressChanged);
worker.RunWorkerCompleted += worker_RunWorkerCompleted;
worker.WorkerReportsProgress = true;
worker.WorkerSupportsCancellation = true;
worker.RunWorkerAsync(); //start transfer process
public void worker_DoWork(object sender, DoWorkEventArgs e)
{
Process Process = new Process();
ProcessInfo = new ProcessStartInfo("cmd.exe", "/C " + Command); //command is the jar file to be execute. It will copy files.
ProcessInfo.RedirectStandardError = true;
ProcessInfo.CreateNoWindow = false;
ProcessInfo.UseShellExecute = false;
Process = Process.Start(ProcessInfo);
Process.WaitForExit();
ExitCode = Process.ExitCode;
Process.Close();
return ExitCode;
}
У меня есть индикатор выполнения во внешнем интерфейсе, который можно обновить с помощью worker.ReportProgress (), но мне нужно понять, как получить информацию из backGroundWorker для ее передачиto worker.ReportProgress ().Или любой другой способ сообщить о прогрессе.
Большое спасибо!