다음을 통해 공유


비동기 원격 서비스

원격 시나리오에서의 비동기 프로그래밍은 .NET Remoting 자체의 구성 및 요구 사항을 제외하고는 단일 응용 프로그램 도메인 또는 컨텍스트에서의 비동기 프로그래밍과 동일합니다. .NET Remoting과 동기 및 비동기 대리자를 사용하는 전체 샘플은 원격 서비스 예: 비동기 원격 서비스를 참조하십시오.

단일 응용 프로그램 도메인의 비동기 프로그래밍과 마찬가지로 .NET Remoting 시나리오에서 비동기 프로그래밍을 사용하는 것은 다음과 같은 사항을 의미합니다.

  • 호출자는 특정 원격 호출의 비동기 여부를 결정합니다.

  • 원격 형식에서는 클라이언트에 의한 비동기 동작을 명시적으로 지원할 필요가 없습니다.

  • 런타임에서는 완전한 형식 안전성을 구현합니다.

  • 메서드를 기다리거나 동기화하려면 System.Threading 개체를 적절히 사용해야 합니다.

그러나 응용 프로그램 도메인 또는 컨텍스트 경계를 넘어 호출하는 응용 프로그램의 경우에는 .NET Remoting에서 .NET Remoting 시스템을 구성하고 클라이언트 프로그래밍 모델이 원격 호출의 대상으로 적합한지 여부도 확인해야 합니다. 이유는 매우 단순합니다. 비동기 호출을 사용하는 경우에는 .NET Remoting 시스템이 서버에서 호출할 콜백 함수를 사용자가 사용할 수도 있기 때문입니다. 예를 들어, 원격화할 수 없는 정적 메서드에 대리자를 전달하거나 시스템에서 자동으로 클라이언트 포트를 선택할 수 있도록 채널 포트를 **"0"**으로 설정하는 것을 잊은 경우 서버에 대한 호출은 완전할 수 있지만 클라이언트에 대한 콜백이 완전하지 않으므로 결과를 얻을 방법이 없습니다.

클라이언트에서 MarshalByRefObject를 확장하거나 원격 형식 자체를 구성할 필요는 없지만 이렇게 하지 않을 경우에는 서버가 될 원격 형식과 동일한 규칙에 따라야 합니다.

  • 인스턴스는 콜백 함수를 받아야 합니다.

  • 콜백 함수를 수신하는 채널을 등록해야 합니다.

참고 항목

작업

방법: 원격 개체의 메서드를 비동기로 호출

개념

원격 개체의 매서드를 비동기식으로 호출할 때 발생하는 문제
원격 서비스 예: 비동기 원격 서비스
원격 응용 프로그램의 구성

기타 리소스

.NET Framework Remoting 개요