다음을 통해 공유


비동기 함수 선언

RPC 함수를 비동기로 선언하려면 먼저 IDL(인터페이스 정의 언어) 파일에서 인터페이스 정의의 일부로 함수를 선언합니다. 비동기 RPC 함수를 사용하면 IDL 파일을 특별히 변경할 필요가 없습니다. 다음 예제에서는 하나의 비동기 함수를 사용하는 애플리케이션에 대한 IDL 파일을 보여 줍니다.

[ 
    uuid (7f6c4340-eb67-11d1-b9d7-00c04fad9a3b),
    version(1.0),
    pointer_default(unique)
]
interface AsyncRPC
{
    const long DEFAULT_ASYNC_DELAY        = 10000;
    const short APP_ERROR                 = -1;
    const char* DEFAULT_PROTOCOL_SEQUENCE = "ncacn_ip_tcp";
    const char* DEFAULT_ENDPOINT          = "8765";
 
    void NonAsyncFunc(handle_t hBinding,
                      [in, string] unsigned char * pszMessage);
 
    void AsyncFunc(handle_t hBinding,
                   [in] unsigned long nAsychDelay);
 
    void Shutdown(handle_t hBinding);
}

애플리케이션에서 사용하는 모든 비동기 RPC 함수의 경우 애플리케이션의 ACF 파일 내에서 비동기 함수 선언을 수정해야 합니다. 다음 예제와 같이 각 비동기 함수 이름에 [async] 특성을 적용합니다.

interface AsyncRPC
{
    [async] AsyncFunc();
}

ACF 파일에 [async] 특성을 적용하면 MIDL 컴파일러가 스텁 코드에 추가 비동기 핸들 매개 변수를 자동으로 생성합니다.