Многопоточность в компонентах
Компонент BackgroundWorker реализует некоторые функциональные возможности работы с потоками в пространстве имен System.Threading; использование компонента BackgroundWorker является простейшим способом реализации многопоточности. Дополнительные сведения см. в разделе Общие сведения о компоненте BackgroundWorker.
Многопоточность, или свободное создание потоков, — это способность приложения одновременно выполнять несколько потоков операций. Примером многопоточного приложения может служить программа, которая в одном потоке получает входные данные от пользователя, во втором — выполняет сложные вычисления, а в третьем — обновляет базу данных. В однопотоковом приложении пользователь может потратить некоторое время на ожидание завершения вычислений или обновления базы данных. В многопоточном приложении эти процессы могут выполняться в фоновом режиме, поэтому время не теряется.
Многопоточность может стать мощным инструментом программирования компонентов. С его помощью можно создавать компоненты, которые будут выполнять сложные вычисления в фоновом режиме, в то время как пользовательский интерфейс останется свободным и сможет отвечать на ввод данных пользователем.
Несмотря на то что многопоточность является мощным инструментом, она достаточно сложна в применении. Неправильно реализованный многопоточный код может снизить быстродействие приложения или вызвать его зависание. В следующих разделах рассматриваются некоторые вопросы многопоточного программирования и даются соответствующие практические рекомендации.
В .NET Framework предлагается несколько возможностей для реализации многопоточности в компонентах. Одной из таких возможностей является применение функциональных возможностей пространства имен System.Threading. Другая возможность — это использование асинхронной модели на основе событий. Компонент BackgroundWorker представляет собой реализацию асинхронной модели; он предоставляет пользователю инкапсулированные в компоненте расширенные возможности, которые обеспечивают простоту использования.
В этом подразделе
- Многопоточное программирование компонентов с использованием System.Threading
Описание использования пространства имен System.Threading для создания многопоточных компонентов.
Ссылка
Класс BackgroundWorker
Позволяет выполнять операцию в отдельном выделенном потоке.Thread
Сведения о синтаксисе и членах класса из справочника .NET Framework.
Связанные подразделы
Многопоточное программирование с использованием асинхронной модели, основанной на событиях
Описание стандартного способа создания пакета компонента, поддерживающего асинхронные функции.Multithreading in Visual Basic
Ссылки на различные разделы, описывающие использование многопоточности в Visual Basic.Рекомендации по работе с потоками
Инструкции по использованию управляемых функций многопоточности.
Topic | Location |
---|---|
Пример работы с потоками | Образцы приложений на C# |