C# LanguageBackgroundWorker


Синтаксис

  • bgWorker.CancellationPending //returns whether the bgWorker was cancelled during its operation

  • bgWorker.IsBusy //returns true if the bgWorker is in the middle of an operation

  • bgWorker.ReportProgress(int x) //Reports a change in progress. Raises the "ProgressChanged" event

  • bgWorker.RunWorkerAsync() //Starts the BackgroundWorker by raising the "DoWork" event

  • bgWorker.CancelAsync() //instructs the BackgroundWorker to stop after the completion of a task.

замечания

Выполнение длительных операций в потоке пользовательского интерфейса может привести к тому, что ваше приложение перестанет реагировать на запросы пользователя и перестанет работать. Предпочтительно, чтобы эти задачи выполнялись в фоновом потоке. После завершения пользовательский интерфейс может быть обновлен.

Внесение изменений в пользовательский интерфейс во время работы BackgroundWorker требует вызова изменений в потоке пользовательского интерфейса, как правило, с помощью метода Control.Invoke для элемента управления, который вы обновляете. Пренебрежение этим приведет к тому, что ваша программа выбросит исключение.

BackgroundWorker обычно используется только в приложениях Windows Forms. В приложениях WPF Задачи используются для разгрузки работы в фоновом потоке (возможно, в сочетании с async / await ). Марширование обновлений в потоке пользовательского интерфейса обычно выполняется автоматически, когда обновляемое свойство реализует INotifyPropertyChanged или вручную, используя Диспетчер потоков пользовательского интерфейса.

BackgroundWorker Связанные примеры