Mendeklarasikan Fungsi Asinkron
Untuk mendeklarasikan fungsi RPC sebagai asinkron, pertama-tama deklarasikan fungsi sebagai bagian dari definisi antarmuka dalam file Bahasa Definisi Antarmuka (IDL). Penggunaan fungsi RPC asinkron tidak memerlukan perubahan khusus pada file IDL Anda. Contoh berikut menunjukkan file IDL untuk aplikasi yang menggunakan satu fungsi asinkron.
[
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);
}
Untuk semua fungsi RPC asinkron yang digunakan aplikasi Anda, Anda harus memodifikasi deklarasi fungsi asinkron dalam file ACF aplikasi Anda. Terapkan atribut [asinkron] ke setiap nama fungsi asinkron, seperti yang ditunjukkan dalam contoh berikut:
interface AsyncRPC
{
[async] AsyncFunc();
}
Saat Anda menerapkan atribut [asinkron] dalam file ACF, pengompilasi MIDL secara otomatis menghasilkan parameter handel asinkron tambahan dalam kode stub.