Asenkron İşlevleri Bildirme
Bir RPC işlevini zaman uyumsuz olarak bildirmek için, önce bir Arabirim Tanım Dili (IDL) dosyasındaki bir arabirim tanımının parçası olarak işlevi bildirin. Zaman uyumsuz RPC işlevlerinin kullanılması, IDL dosyanızda herhangi bir özel değişiklik gerektirmez. Aşağıdaki örnekte, zaman uyumsuz bir işlev kullanan bir uygulamanın IDL dosyası gösterilmektedir.
[
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);
}
Uygulamanızın kullandığı tüm zaman uyumsuz RPC işlevleri için, uygulamanızın ACF dosyasındaki zaman uyumsuz işlevlerin bildirimini değiştirmeniz gerekir. Aşağıdaki örnekte gösterildiği gibi, her bir asenkron işlev adına [async] özniteliğini uygulayın.
interface AsyncRPC
{
[async] AsyncFunc();
}
ACF dosyasında [async] özniteliğini uyguladığınızda, MIDL derleyicisi şablon kodunda otomatik olarak ek bir asenkron tanıtıcı parametresi oluşturur.