대리자를 사용하면 동기 메서드를 비동기 방식으로 호출할 수 있습니다. 대리자를 동기적으로 호출할 때 메서드는 Invoke
현재 스레드에서 직접 대상 메서드를 호출합니다. 메서드가 BeginInvoke
호출되면 CLR(공용 언어 런타임)은 요청을 큐에 대기하고 호출자에게 즉시 반환합니다. 대상 메서드는 스레드 풀의 스레드에서 비동기적으로 호출됩니다. 요청을 제출한 원래 스레드는 대상 메서드와 병렬로 계속 실행할 수 있습니다. 메서드 호출에서 콜백 메서드를 BeginInvoke
지정한 경우 대상 메서드가 종료될 때 콜백 메서드가 호출됩니다. 콜백 메서드에서 메서드는 EndInvoke
반환 값과 입력/출력 또는 출력 전용 매개 변수를 가져옵니다. 호출 BeginInvoke
EndInvoke
할 때 콜백 메서드가 지정되지 않은 경우 호출BeginInvoke
된 스레드에서 호출할 수 있습니다.
중요합니다
컴파일러는 사용자 지정 대리자 서명을 사용하여 대리자 클래스Invoke
와 BeginInvoke
, EndInvoke
메서드를 생성해야 합니다.
BeginInvoke
및 EndInvoke
메서드는 네이티브로 데코레이팅되어야 합니다. 이러한 메서드는 네이티브로 표시되므로 CLR은 클래스 로드 시 구현을 자동으로 제공합니다. 로더는 재정의되지 않도록 방지합니다.
이 섹션 안에
동기 메서드를 비동기적으로 호출
대리자를 사용하여 일반 메서드를 비동기 호출하는 방법을 설명하고, 비동기 호출이 반환되기를 기다리는 네 가지 방법을 보여 주는 간단한 코드 예제를 제공합니다.
관련 섹션
EAP(이벤트 기반 비동기 패턴)
.NET의 비동기 프로그래밍에 대해 설명합니다.
참고하십시오
.NET