Многопоточность в компонентах

Компонент BackgroundWorker реализует некоторые функциональные возможности работы с потоками в пространстве имен System.Threading; использование компонента BackgroundWorker является простейшим способом реализации многопоточности.Дополнительные сведения см. в разделе Общие сведения о компоненте BackgroundWorker.

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

Многопоточность может стать мощным инструментом программирования компонентов.С его помощью можно создавать компоненты, которые будут выполнять сложные вычисления в фоновом режиме, в то время как пользовательский интерфейс останется свободным и сможет отвечать на ввод данных пользователем.

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

В .NET Framework предлагается несколько возможностей для реализации многопоточности в компонентах.Одной из таких возможностей является применение функциональных возможностей пространства имен System.Threading.Другая возможность — это использование асинхронной модели на основе событий.Компонент BackgroundWorker представляет собой реализацию асинхронной модели; он предоставляет пользователю инкапсулированные в компоненте расширенные возможности, которые обеспечивают простоту использования.

В этом подразделе

Ссылки

  • Класс BackgroundWorker
    Позволяет выполнять операцию в отдельном выделенном потоке.

  • Thread
    Сведения о синтаксисе и членах класса из справочника .NET Framework.

Связанные подразделы

Topic Location
Пример работы с потоками Образцы приложений на C#

См. также

Другие ресурсы

Создание компонентов

настройка тестов