Данная статья переведена с помощью средств машинного перевода. Чтобы просмотреть ее на английском языке, установите флажок Английский. Вы также можете просматривать английский текст во всплывающем окне, наводя указатель мыши на переведенный текст.
Перевод
Английский

Класс BackgroundWorker

 

Опубликовано: Октябрь 2016

Выполняет операцию в отдельном потоке.

Пространство имен:   System.ComponentModel
Сборка:  System (в System.dll)

System.Object
  System.MarshalByRefObject
    System.ComponentModel.Component
      System.ComponentModel.BackgroundWorker

[<HostProtectionAttribute(SecurityAction.LinkDemand, SharedState = true)>]
type BackgroundWorker = 
    class
        inherit Component
    end

ИмяОписание
System_CAPS_pubmethodBackgroundWorker()

Инициализирует новый экземпляр класса BackgroundWorker.

ИмяОписание
System_CAPS_pubpropertyCancellationPending

Возвращает значение, указывающее, является ли приложение запросило отмену фоновой операции.

System_CAPS_protpropertyCanRaiseEvents

Возвращает значение, указывающее, может ли компонент вызывать событие.(Наследуется от Component.)

System_CAPS_pubpropertyContainer

Возвращает IContainer содержащий Component.(Наследуется от Component.)

System_CAPS_protpropertyDesignMode

Возвращает значение, указывающее, является ли Component в настоящее время находится в режиме конструктора.(Наследуется от Component.)

System_CAPS_protpropertyEvents

Возвращает список обработчиков событий, которые прикреплены к этому Component.(Наследуется от Component.)

System_CAPS_pubpropertyIsBusy

Возвращает значение, указывающее, является ли BackgroundWorker выполняется асинхронная операция.

System_CAPS_pubpropertySite

Возвращает или задает ISite из Component.(Наследуется от Component.)

System_CAPS_pubpropertyWorkerReportsProgress

Возвращает или задает значение, указывающее, является ли BackgroundWorker может сообщать о ходе выполнения обновления.

System_CAPS_pubpropertyWorkerSupportsCancellation

Возвращает или задает значение, указывающее, является ли BackgroundWorker поддерживает асинхронную отмену.

ИмяОписание
System_CAPS_pubmethodCancelAsync()

Запрашивает отмену отложенной фоновой операции.

System_CAPS_pubmethodCreateObjRef(Type)

Создает объект, который содержит все необходимые сведения, необходимые для создания прокси-сервер, используемый для обмена данными с удаленным объектом.(Наследуется от MarshalByRefObject.)

System_CAPS_pubmethodDispose()

Освобождает все ресурсы, занятые модулем Component.(Наследуется от Component.)

System_CAPS_protmethodDispose(Boolean)

Освобождает неуправляемые ресурсы, используемые объектом Component, а при необходимости освобождает также управляемые ресурсы.(Наследуется от Component.)

System_CAPS_pubmethodEquals(Object)

Определяет, равен ли заданный объект текущему объекту.(Наследуется от Object.)

System_CAPS_protmethodFinalize()

Освобождает неуправляемые ресурсы и выполняет другие операции очистки, перед тем как объект Component будет удален при сборке мусора.(Наследуется от Component.)

System_CAPS_pubmethodGetHashCode()

Служит хэш-функцией по умолчанию.(Наследуется от Object.)

System_CAPS_pubmethodGetLifetimeService()

Извлекает объект текущее время существования службы, который управляет политикой времени существования данного экземпляра.(Наследуется от MarshalByRefObject.)

System_CAPS_protmethodGetService(Type)

Возвращает объект, представляющий службу, предоставляемую классом Component или классом Container.(Наследуется от Component.)

System_CAPS_pubmethodGetType()

Возвращает объект Type для текущего экземпляра.(Наследуется от Object.)

System_CAPS_pubmethodInitializeLifetimeService()

Получает объект службы времени существования для управления политикой времени существования для этого экземпляра.(Наследуется от MarshalByRefObject.)

System_CAPS_protmethodMemberwiseClone()

Создает неполную копию текущего объекта Object.(Наследуется от Object.)

System_CAPS_protmethodMemberwiseClone(Boolean)

Создает неполную копию текущего MarshalByRefObject объекта.(Наследуется от MarshalByRefObject.)

System_CAPS_protmethodOnDoWork(DoWorkEventArgs)

Вызывает событие DoWork.

System_CAPS_protmethodOnProgressChanged(ProgressChangedEventArgs)

Вызывает событие ProgressChanged.

System_CAPS_protmethodOnRunWorkerCompleted(RunWorkerCompletedEventArgs)

Вызывает событие RunWorkerCompleted.

System_CAPS_pubmethodReportProgress(Int32)

Вызывает событие ProgressChanged.

System_CAPS_pubmethodReportProgress(Int32, Object)

Вызывает событие ProgressChanged.

System_CAPS_pubmethodRunWorkerAsync()

Запускает выполнение фоновой операции.

System_CAPS_pubmethodRunWorkerAsync(Object)

Запускает выполнение фоновой операции.

System_CAPS_pubmethodToString()

Возвращает String содержащее имя Component, если таковые имеются. Этот метод не следует переопределять.(Наследуется от Component.)

ИмяОписание
System_CAPS_pubeventDisposed

Происходит при удалении компонента путем вызова Dispose метод.(Наследуется от Component.)

System_CAPS_pubeventDoWork

Происходит при RunWorkerAsync вызывается.

System_CAPS_pubeventProgressChanged

Происходит при ReportProgress вызывается.

System_CAPS_pubeventRunWorkerCompleted

Происходит, когда фоновая операция завершена, было отменено или вызвало исключение.

The T:System.ComponentModel.BackgroundWorker class allows you to run an operation on a separate, dedicated thread. Time-consuming operations like downloads and database transactions can cause your user interface (UI) to seem as though it has stopped responding while they are running. When you want a responsive UI and you are faced with long delays associated with such operations, the T:System.ComponentModel.BackgroundWorker class provides a convenient solution.

To execute a time-consuming operation in the background, create a T:System.ComponentModel.BackgroundWorker and listen for events that report the progress of your operation and signal when your operation is finished. You can create the T:System.ComponentModel.BackgroundWorker programmatically or you can drag it onto your form from the Components tab of the Toolbox. If you create the T:System.ComponentModel.BackgroundWorker in the Windows Forms Designer, it will appear in the Component Tray, and its properties will be displayed in the Properties window.

To set up for a background operation, add an event handler for the E:System.ComponentModel.BackgroundWorker.DoWork event. Call your time-consuming operation in this event handler. To start the operation, call M:System.ComponentModel.BackgroundWorker.RunWorkerAsync. To receive notifications of progress updates, handle the E:System.ComponentModel.BackgroundWorker.ProgressChanged event. To receive a notification when the operation is completed, handle the E:System.ComponentModel.BackgroundWorker.RunWorkerCompleted event.

System_CAPS_noteПримечание

You must be careful not to manipulate any user-interface objects in your E:System.ComponentModel.BackgroundWorker.DoWork event handler. Instead, communicate to the user interface through the E:System.ComponentModel.BackgroundWorker.ProgressChanged and E:System.ComponentModel.BackgroundWorker.RunWorkerCompleted events.

BackgroundWorker events are not marshaled across AppDomain boundaries. Do not use a BackgroundWorker component to perform multithreaded operations in more than one AppDomain.

If your background operation requires a parameter, call M:System.ComponentModel.BackgroundWorker.RunWorkerAsync with your parameter. Inside the E:System.ComponentModel.BackgroundWorker.DoWork event handler, you can extract the parameter from the P:System.ComponentModel.DoWorkEventArgs.Argument property.

For more information about T:System.ComponentModel.BackgroundWorker, see How to: Run an Operation in the Background.

The following code example demonstrates the basics of the T:System.ComponentModel.BackgroundWorker class for executing a time-consuming operation asynchronously. The following illustration shows an example of the output.

Простой пример компонента BackgroundWorker

To try this code, create a Windows Forms application. Add a T:System.Windows.Forms.Label control named resultLabel and add two T:System.Windows.Forms.Button controls named startAsyncButton and cancelAsyncButton. Create E:System.Windows.Forms.Control.Click event handlers for both buttons. From the Components tab of the Toolbox, add a T:System.ComponentModel.BackgroundWorker component named backgroundWorker1. Create E:System.ComponentModel.BackgroundWorker.DoWork, E:System.ComponentModel.BackgroundWorker.ProgressChanged, and E:System.ComponentModel.BackgroundWorker.RunWorkerCompleted event handlers for the T:System.ComponentModel.BackgroundWorker. In the code for the form, replace the existing code with the following code.

В настоящее время язык не поддерживается либо пример кода отсутствует.

The following code example demonstrates the use of the T:System.ComponentModel.BackgroundWorker class for executing a time-consuming operation asynchronously. The following illustration shows an example of the output.

Пример компонента BackgroundWorker с применением вычисления Фибоначчи

The operation computes the selected Fibonacci number, reports progress updates as the calculation proceeds, and permits a pending calculation to be canceled.

В настоящее время язык не поддерживается либо пример кода отсутствует.

Универсальная платформа Windows
Доступно с 10
.NET Framework
Доступно с 2.0
Silverlight
Доступно с 2.0
Windows Phone Silverlight
Доступно с 7.0

Любые открытые статические элементы ( Предоставлен общий доступ в Visual Basic) этого типа являются потокобезопасными. Потокобезопасность элементов экземпляров не гарантируется.

Вернуться в начало
Показ: