데이터베이스 작업을 완료하는 데 상당한 시간이 걸릴 수 있습니다. 사용자 인터페이스의 응답성을 유지하거나 요청 스레드를 차단하지 않도록 하려면 명령이 완료되도록 동기적으로 대기하는 대신 비동기 데이터베이스 메서드를 사용합니다.
SQL 클라이언트 코드용 Microsoft.Data.SqlClient NuGet 패키지를 설치합니다. 새 애플리케이션의 경우 await와 함께 OpenAsync 및 ExecuteXmlReaderAsync, ExecuteNonQueryAsync, ExecuteReaderAsync 메서드를 사용하세요. 이러한 메서드는 백그라운드 스레드를 만들 필요 없이 비동기 입력/출력(I/O)을 수행합니다.
Microsoft. Data.SqlClient는 이 섹션에 설명된 콜백, 대기 핸들 및 폴링 패턴도 지원합니다.
BeginExecuteNonQuery, BeginExecuteReader, EndExecuteReader 메서드는 EndExecuteXmlReader, BeginExecuteXmlReader, EndExecuteNonQuery와 짝을 이룹니다.
Asynchronous Processing=true를 연결 문자열에 추가하지 마세요. Microsoft.Data.SqlClient는 해당 키워드를 지원하지 않습니다.
비고
새 코드의 경우 작업 기반 비동기 패턴을 사용합니다. 이 섹션의 예제에서는 콜백, 대기 핸들 또는 폴링이 필요한 애플리케이션에 대해 지원되는 Begin/End 패턴을 보여 줍니다.
작업이 완료될 때까지 각 연결 및 명령을 활성 상태로 유지합니다. 일치하는 End 메서드를 호출하거나 작업을 대기할 때 예외를 확인합니다. 데스크톱 애플리케이션에서 사용자 인터페이스 스레드에서만 컨트롤을 업데이트하세요.
이 섹션 안에
콜백을 사용하는 Windows 애플리케이션 비동기 명령을 안전하게 실행하고 별도의 스레드에서 양식 및 해당 내용과의 상호 작용을 올바르게 처리하는 방법을 보여 주는 예제를 제공합니다.
대기 핸들을 사용하여 애플리케이션 ASP.NET 대기 핸들을 사용하여 모든 명령이 완료될 때 작업을 관리하는 ASP.NET 페이지에서 여러 동시 명령을 실행하는 방법을 보여 주는 예제를 제공합니다.
콘솔 애플리케이션에서 폴링 콘솔 애플리케이션에서 비동기 명령 실행이 완료될 때까지 대기하기 위해 폴링을 사용하는 방법을 보여 주는 예제를 제공합니다. 이 기술은 사용자 인터페이스가 없는 클래스 라이브러리 또는 다른 애플리케이션에서도 유효합니다.