다음을 통해 공유


비동기 프로그래밍 디자인 패턴

업데이트: 2007년 11월

비동기 작업은 일반적으로 큰 파일 열기, 원격 컴퓨터 연결 또는 데이터베이스 쿼리와 같이 완료하는 데 긴 시간이 소요될 수 있는 작업을 수행하는 데 사용됩니다. 비동기 작업은 기본 응용 프로그램 스레드와 다른 스레드에서 실행됩니다. 응용 프로그램이 비동기 작업을 수행하는 메서드를 호출하는 경우 비동기 메서드가 해당 작업을 수행하는 동안에도 응용 프로그램은 계속 실행될 수 있습니다.

.NET Framework는 비동기 작업에 대한 다음 두 가지 디자인 패턴을 제공합니다.

  • IAsyncResult 개체를 사용하는 비동기 작업

  • 이벤트를 사용하는 비동기 작업

IAsyncResult 디자인 패턴은 다양한 프로그래밍 모델을 허용하지만 배우기가 더 어렵고 대부분의 응용 프로그램에서 필요하지 않은 유연성을 제공합니다. 가능한 경우 클래스 라이브러리 디자이너는 이벤트 구동 모델을 사용하여 비동기 메서드를 구현해야 합니다. 경우에 따라 라이브러리 디자이너는 IAsyncResult 기반 모델도 구현해야 합니다.

이벤트를 사용하는 비동기 작업에 대한 내용은 이벤트 기반 비동기 패턴 개요를 참조하십시오.

비동기 프로그래밍은 다음을 비롯한 .NET Framework의 여러 영역에서 지원되는 기능입니다.

  • 파일 IO, 스트림 IO, 소켓 IO

  • 네트워킹

  • 원격 채널(HTTP, TCP) 및 프록시

  • ASP.NET을 사용하여 만든 XML Web services

  • ASP.NET Web Forms

  • MessageQueue 클래스를 사용하는 메시지 큐

단원 내용

참고 항목

개념

비동기 파일 I/O

참조

AsyncCallback

IAsyncResult

Delegate

AsyncOperationManager

BackgroundWorker