Пример Thread Pools Technology
Обновлен: Ноябрь 2007
В этом примере демонстрируется использование класса ThreadPool. В примере производится постановка в очередь асинхронного вызова метода, выполненного потоком из пула потоков, управляемого средой CLR.
Дополнительные сведения об использовании примеров см. в следующих разделах:
Построение примера с использованием командной строки
Откройте окно командной строки и перейдите к вложенной папке для данного примера, соответствующей выбранному языку.
В командной строке введите msbuild PoolsCS.sln или msbuild PoolsVB.sln, в зависимости от выбранного языка программирования.
Построение примера с использованием Visual Studio
Откройте обозреватель Windows и перейдите к вложенной папке для данного примера, соответствующей выбранному языку.
Дважды щелкните значок PoolsCS.sln или PoolsVB.sln, в зависимости от выбранного языка программирования, чтобы открыть файл в Visual Studio.
В меню Построение выберите команду Построить решение.
Выполнение примера
С помощью командной строки перейдите в каталог, содержащий построенный исполняемый файл.
В командной строке введите AsyncMethod.exe.
Примечание. В данном образце выполняется построение консольного приложения. Чтобы просмотреть выводимые им данные, необходимо запустить его в командной строке.
Примечания
В этом примере для управления асинхронными вызовами методов используется очередь сообщений. Вызываемый метод "срабатывает" и затем задает событие, показывающее, что работа была завершена. Главный поток ожидает выполнения события, а затем завершается.
В следующем маркированном списке кратко описываются технологии и классы, используемые в этом примере.
Работа с потоками
- ThreadPool При записи управляющего кода разработчикам рекомендуется использовать метод QueueUserWorkItem для реализации асинхронных вызовов методов. Этот пример демонстрирует простоту использования данного типа для выполнения асинхронных действий.
Синхронизация потоков
- AutoResetEvent Главный поток в примере ожидает установление объекта AutoResetEvent асинхронным методом. Асинхронный метод вызывает метод Set, когда он завершает свою работу.
Делегаты
- WaitCallback Используется для создания безопасного метода обратного вызова для используемого класса ThreadPool.
Дополнительные сведения о синхронизации потоков см. в комментариях в файлах исходного кода.