Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Для выполнения некоторых операций базы данных, таких как выполнение команд, может потребоваться значительное время. В таком случае однопоточные приложения должны блокировать другие операции и ждать завершения команды, прежде чем они смогут продолжить свои собственные операции. В отличие от этого, возможность передачи длительной операции фоновому потоку позволяет основному потоку оставаться активным во время операции. Например, в приложении Windows делегирование длительной операции фоновому потоку позволяет потоку пользовательского интерфейса оставаться адаптивным во время выполнения операции.
Платформа .NET Framework предоставляет несколько стандартных асинхронных шаблонов проектирования, которые разработчики могут использовать для использования фоновых потоков и освобождения пользовательского интерфейса или высокоприоритетных потоков для выполнения других операций. ADO.NET поддерживает эти же шаблоны проектирования в своем SqlCommand классе. В частности, методы BeginExecuteNonQuery, BeginExecuteReader и BeginExecuteXmlReader, которые связаны с методами EndExecuteNonQuery, EndExecuteReader и EndExecuteXmlReader, обеспечивают асинхронную поддержку.
Замечание
Асинхронное программирование — это основная функция платформы .NET Framework, и ADO.NET использует все преимущества стандартных шаблонов проектирования. Дополнительные сведения о различных асинхронных методах, доступных разработчикам, см. в статье "Асинхронные методы вызова синхронных методов".
Хотя использование асинхронных методов с функциями ADO.NET не добавляет никаких специальных соображений, скорее всего, больше разработчиков будут использовать асинхронные функции в ADO.NET, чем в других областях платформы .NET Framework. Важно учитывать преимущества и недостатки создания многопоточных приложений. В примерах, приведенных в этом разделе, описано несколько важных вопросов, которые разработчики должны учитывать при создании приложений, которые включают многопоточные функции.
В этом разделе
Приложения Windows на основе обратных вызовов
В этом примере показано, как безопасно выполнить асинхронную команду, правильно обрабатывая взаимодействие с формой и его содержимым из отдельного потока.
ASP.NET приложения с использованием дескрипторов ожидания
В этом примере показано, как выполнять несколько параллельных команд на странице ASP.NET, используя дескриптор ожидания для управления операцией при завершении всех команд.
Опрос в консольных приложениях
Содержит пример, демонстрирующий использование опроса для ожидания завершения асинхронного выполнения команды из консольного приложения. Этот метод также действителен в библиотеке классов или другом приложении без пользовательского интерфейса.