Я читаю линейную консоль внешнего exe с помощью фонаря, я назначаю каждую строку консоли метке. проблема заключается в том, что метка не обновляется с помощью консоли. код приведен нижеОбновление метки с успехом фонового рабочего стола
private void bgWorker_DoWork(object sender, DoWorkEventArgs e)
{
int i = 0;
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.CreateNoWindow = true;
startInfo.UseShellExecute = false;
startInfo.FileName = EXELOCATION;
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.Arguments = Program.path;
startInfo.RedirectStandardOutput = true;
try
{
// Start the process with the info we specified.
// Call WaitForExit and then the using statement will close.
using (exeProcess = Process.Start(startInfo))
{
using (StreamReader reader = exeProcess.StandardOutput)
{
string result;
while ((result = reader.ReadLine()) != null)
{
// object param = result;
e.Result = result;
bgWorker.ReportProgress(i++);
}
}
}
}
catch
{
// Log error.
}
}
private void bgWorker_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
label.Text = e.ToString();
label.Refresh();
}
как я могу решить эту проблему
Вы уверены, что это не происходит ** ** ли случайно, что файл настолько мал, что это происходит слишком быстро? –
- это приложение WinForms или WPF? – SWeko
код повышает эту ошибку «Этот BackgroundWorker заявляет, что он не сообщает о прогрессе. Измените WorkerReportsProgress, чтобы заявить, что он сообщает о ходе». – WiXXeY