방법: 비동기 서비스 작업 구현
WCF(Windows Communication Foundation) 응용 프로그램에서는 클라이언트에게 호출 방법을 지시하지 않고 서비스 작업을 비동기 또는 동기적으로 구현할 수 있습니다. 예를 들어 비동기 서비스 작업을 동기적으로 호출하고, 동기 서비스 작업을 비동기적으로 호출할 수 있습니다. 클라이언트 응용 프로그램에서 작업을 비동기적으로 호출하는 방법을 보여 주는 예제는 방법: 비동기적으로 WCF 서비스 작업 호출을 참조하십시오. 동기 및 비동기 작업에 대한 자세한 내용은 서비스 계약 디자인 및 동기 및 비동기 작업을 참조하십시오.
비동기 서비스 작업 구현
서비스 계약에서 NET 비동기 디자인 지침에 따라 비동기 메서드 쌍을 선언합니다. Begin 메서드는 매개 변수, 콜백 개체 및 상태 개체를 가져와서 System.IAsyncResult 및 System.IAsyncResult를 가져오는 일치하는 End 메서드를 반환한 다음 반환 값을 반환합니다. 비동기 호출에 대한 자세한 내용은 Asynchronous Programming Design Patterns을 참조하십시오.
System.ServiceModel.OperationContractAttribute 특성을 가진 비동기 메서드 쌍의 Begin 메서드를 표시하고 System.ServiceModel.OperationContractAttribute.AsyncPattern 속성을 true로 설정합니다. 예를 들어 다음 코드에서는 단계 1 및 2를 수행합니다.
비동기 디자인 지침에 따라 서비스 클래스에서 Begin/End 메서드 쌍을 구현합니다. 예를 들어 다음 코드 예제에서는 비동기 서비스 작업의 Begin 및 End 부분 모두의 콘솔에 기록된 문자열의 구현 및 End 작업의 반환 값이 클라이언트에 반환되는 것을 보여 줍니다. 전체 코드 예제를 보려면 예제 단원을 참조하십시오.
예제
다음 코드 예제에서는 다음을 보여 줍니다.
- 다음을 포함한 서비스 계약 인터페이스:
- 동기
SampleMethod
작업. - 비동기
BeginSampleMethod
작업. - 비동기
BeginServiceAsyncMethod
/EndServiceAsyncMethod
작업 쌍.
- 동기
- System.IAsyncResult 개체를 사용하여 서비스 구현.