Шаблоны разработки для асинхронного программирования

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

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

Платформа .NET Framework предоставляет два шаблона разработки для асинхронных операций:

  • асинхронные операции, использующие объекты IAsyncResult;

  • асинхронные операции, использующие события.

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

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

Асинхронное программирование — это возможность, поддерживаемая многими областями платформы .NET Framework, в том числе:

  • ввод-вывод на основе файлов, потоков и сокетов;

  • работа в сети;

  • удаленные каналы (HTTP, TCP) и прокси-сервера;

  • веб-службы с поддержкой XML, создаваемые с помощью ASP.NET;

  • веб-формы ASP.NET;

  • организация очередей сообщений с помощью класса MessageQueue.

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

См. также

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

Асинхронный файловый ввод-вывод

Ссылки

AsyncCallback

IAsyncResult

Delegate

AsyncOperationManager

BackgroundWorker