Пример использования многопотоковости
Обновлен: Ноябрь 2007
Это решение демонстрирует использование нескольких потоков для достижения параллелизма в задачах.
Получение примеров и инструкций по их установке
Выполните одно или несколько из следующих действий:
В меню Справка выберите пункт Примеры.
Отобразится информация о примерах, содержащаяся в файле сведений о продукте.
Посетите веб-узел примеров Visual Studio 2008 Здесь содержатся самые последние версии примеров.
Найдите примеры на компьютере, где установлена среда Visual Studio. По умолчанию примеры и файл сведений о продукте устанавливаются в папку диск:\Program Files\Microsoft Visual Studio 9.0\Samples\lcid. Для выпусков Express продукта Visual Studio все примеры располагаются в Интернете.
Дополнительные сведения см. в разделе Поиск файлов примеров.
Примечание о безопасности. |
---|
Этот пример кода иллюстрирует концепцию и содержит только код, относящийся к этой концепции. Он может не отвечать требованиям безопасности для конкретных условий, и его не следует использовать в точности в том виде, в каком он приведен. Чтобы проект был безопасным и надежным, рекомендуется добавить код обеспечения безопасности и код обработки ошибок. Корпорация Майкрософт предоставляет этот пример кода на условиях “как есть”, без каких-либо гарантий. |
Для запуска этого примера
- Нажмите клавишу F5.
Демонстрации
В этом примере по нажатию кнопки в отдельном потоке запускается задача, занимающая много времени:
Запустить в том же потоке Задача выполняется в том же потоке, что и главная форма. При этом взаимодействие пользователя с главной формой блокируется до завершения задачи. Для данной задачи не требуется многопоточный код.
Запустить в потоке из рабочего пула Задача использует метод BeginInvoke, создаваемый компилятором для всех делегатов для запуска задания.
Фоновый рабочий поток Эта задача использует метод Компонент BackgroundWorker для создания нового потока.
Этот пример не включает синхронизацию, поскольку потоки не получают доступ к каким-либо данным.
См. также
Основные понятия
Общие сведения об асинхронном программировании