Пример Thread Pools Technology

Обновлен: Ноябрь 2007

В этом примере демонстрируется использование класса ThreadPool. В примере производится постановка в очередь асинхронного вызова метода, выполненного потоком из пула потоков, управляемого средой CLR.

Дополнительные сведения об использовании примеров см. в следующих разделах:

Download sample

Построение примера с использованием командной строки

  1. Откройте окно командной строки и перейдите к вложенной папке для данного примера, соответствующей выбранному языку.

  2. В командной строке введите msbuild PoolsCS.sln или msbuild PoolsVB.sln, в зависимости от выбранного языка программирования.

Построение примера с использованием Visual Studio

  1. Откройте обозреватель Windows и перейдите к вложенной папке для данного примера, соответствующей выбранному языку.

  2. Дважды щелкните значок PoolsCS.sln или PoolsVB.sln, в зависимости от выбранного языка программирования, чтобы открыть файл в Visual Studio.

  3. В меню Построение выберите команду Построить решение.

Выполнение примера

  1. С помощью командной строки перейдите в каталог, содержащий построенный исполняемый файл.

  2. В командной строке введите AsyncMethod.exe.

    tbbty0e4.alert_note(ru-ru,VS.90).gifПримечание.

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

Примечания

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

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

  • Работа с потоками

    • ThreadPool При записи управляющего кода разработчикам рекомендуется использовать метод QueueUserWorkItem для реализации асинхронных вызовов методов. Этот пример демонстрирует простоту использования данного типа для выполнения асинхронных действий.
  • Синхронизация потоков

    • AutoResetEvent Главный поток в примере ожидает установление объекта AutoResetEvent асинхронным методом. Асинхронный метод вызывает метод Set, когда он завершает свою работу.
  • Делегаты

    • WaitCallback Используется для создания безопасного метода обратного вызова для используемого класса ThreadPool.

Дополнительные сведения о синхронизации потоков см. в комментариях в файлах исходного кода.

См. также

Основные понятия

Потоки и работа с потоками

Ссылки

AutoResetEvent

Delegate

System.Threading

ThreadPool

ThreadStart

WaitCallback

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

Объекты и функциональные возможности работы с потоками