비동기 프로그래밍 디자인 패턴
업데이트: 2007년 11월
비동기 작업은 일반적으로 큰 파일 열기, 원격 컴퓨터 연결 또는 데이터베이스 쿼리와 같이 완료하는 데 긴 시간이 소요될 수 있는 작업을 수행하는 데 사용됩니다. 비동기 작업은 기본 응용 프로그램 스레드와 다른 스레드에서 실행됩니다. 응용 프로그램이 비동기 작업을 수행하는 메서드를 호출하는 경우 비동기 메서드가 해당 작업을 수행하는 동안에도 응용 프로그램은 계속 실행될 수 있습니다.
.NET Framework는 비동기 작업에 대한 다음 두 가지 디자인 패턴을 제공합니다.
IAsyncResult 개체를 사용하는 비동기 작업
이벤트를 사용하는 비동기 작업
IAsyncResult 디자인 패턴은 다양한 프로그래밍 모델을 허용하지만 배우기가 더 어렵고 대부분의 응용 프로그램에서 필요하지 않은 유연성을 제공합니다. 가능한 경우 클래스 라이브러리 디자이너는 이벤트 구동 모델을 사용하여 비동기 메서드를 구현해야 합니다. 경우에 따라 라이브러리 디자이너는 IAsyncResult 기반 모델도 구현해야 합니다.
이벤트를 사용하는 비동기 작업에 대한 내용은 이벤트 기반 비동기 패턴 개요를 참조하십시오.
비동기 프로그래밍은 다음을 비롯한 .NET Framework의 여러 영역에서 지원되는 기능입니다.
파일 IO, 스트림 IO, 소켓 IO
네트워킹
원격 채널(HTTP, TCP) 및 프록시
ASP.NET을 사용하여 만든 XML Web services
ASP.NET Web Forms
MessageQueue 클래스를 사용하는 메시지 큐
단원 내용
비동기 프로그래밍 개요
비동기 작업을 처리할 수 있는 유연한 프로그래밍 모델을 제공하는 IAsyncResult 기반 비동기 디자인 패턴에 대해 설명합니다.IAsyncResult를 사용하는 비동기 메서드 호출
응용 프로그램이 비동기 작업 종료를 감지할 수 있는 다양한 방법을 보여 주는 코드 예제를 제공합니다.대리자를 사용한 비동기 프로그래밍
비동기 방식의 동기 메서드 호출에 대해 설명합니다.이벤트 기반 비동기 패턴을 사용한 다중 스레드 프로그래밍
크로스 스레드 통신을 위한 이벤트를 사용하는 비동기 프로그래밍 모델을 제공하는 이벤트 기반 비동기 패턴에 대해 설명합니다.