명령 실행과 같은 일부 데이터베이스 작업은 완료하는 데 상당한 시간이 걸릴 수 있습니다. 이러한 경우 단일 스레드 애플리케이션은 다른 작업을 차단하고 명령이 완료될 때까지 기다렸다가 자체 작업을 계속할 수 있어야 합니다. 반면에 장기 실행 작업을 백그라운드 스레드에 할당할 수 있으면 포그라운드 스레드가 작업 전체에서 활성 상태로 유지됩니다. 예를 들어 Windows 애플리케이션에서 장기 실행 작업을 백그라운드 스레드로 위임하면 작업이 실행되는 동안 사용자 인터페이스 스레드가 응답성을 유지할 수 있습니다.
.NET Framework는 개발자가 백그라운드 스레드를 활용하고 사용자 인터페이스 또는 우선 순위가 높은 스레드를 해제하여 다른 작업을 완료하는 데 사용할 수 있는 몇 가지 표준 비동기 디자인 패턴을 제공합니다. ADO.NET 클래스에서 SqlCommand 이와 동일한 디자인 패턴을 지원합니다. 특히 BeginExecuteNonQuery, BeginExecuteReader, 및 BeginExecuteXmlReader 메서드는 EndExecuteNonQuery, EndExecuteReader, 및 EndExecuteXmlReader 메서드와 쌍을 이루어 비동기 지원을 제공합니다.
비고
비동기 프로그래밍은 .NET Framework의 핵심 기능이며 ADO.NET 표준 디자인 패턴을 최대한 활용합니다. 개발자가 사용할 수 있는 다양한 비동기 기술에 대한 자세한 내용은 동기 메서드 호출을 비동기적으로 참조하세요.
ADO.NET 기능과 함께 비동기 기술을 사용하는 것은 특별한 고려 사항을 추가하지 않지만, 더 많은 개발자가 .NET Framework의 다른 영역보다 ADO.NET 비동기 기능을 사용할 가능성이 높습니다. 다중 스레드 애플리케이션을 만들 때의 이점과 문제를 알고 있어야 합니다. 이 섹션의 다음 예제에서는 다중 스레드 기능을 통합하는 애플리케이션을 빌드할 때 개발자가 고려해야 하는 몇 가지 중요한 문제를 설명합니다.
이 섹션 안에
콜백을 사용하는 Windows 애플리케이션
비동기 명령을 안전하게 실행하고 별도의 스레드에서 양식 및 해당 내용과의 상호 작용을 올바르게 처리하는 방법을 보여 주는 예제를 제공합니다.
대기 핸들을 사용하는 ASP.NET 애플리케이션
대기 핸들을 사용하여 모든 명령이 완료될 때 작업을 관리하는 ASP.NET 페이지에서 여러 동시 명령을 실행하는 방법을 보여 주는 예제를 제공합니다.
콘솔 애플리케이션에서 폴링
콘솔 애플리케이션에서 비동기 명령 실행이 완료될 때까지 대기하기 위해 폴링을 사용하는 방법을 보여 주는 예제를 제공합니다. 이 기술은 사용자 인터페이스가 없는 클래스 라이브러리 또는 다른 애플리케이션에서도 유효합니다.