Bagikan melalui


Fungsi WsAsyncExecute (webservices.h)

Fungsi pembantu untuk menerapkan operasi asinkron .

Sintaks

HRESULT WsAsyncExecute(
  [in]           WS_ASYNC_STATE         *asyncState,
  [in, optional] WS_ASYNC_FUNCTION      operation,
  [in]           WS_CALLBACK_MODEL      callbackModel,
  [in]           void                   *callbackState,
  [in, optional] const WS_ASYNC_CONTEXT *asyncContext,
  [in, optional] WS_ERROR               *error
);

Parameter

[in] asyncState

Penunjuk ke struktur WS_ASYNC_STATE yang digunakan selama operasi asinkron. Ini adalah parameter pemeliharaan status yang tidak dimaksudkan untuk penggunaan langsung. Aplikasi harus mengalokasikan struktur WS_ASYNC_STATE dan memastikan bahwa itu tetap hidup selama seluruh operasi asinkron. Struktur WS_ASYNC_STATE dapat digunakan kembali setelah operasi asinkron selesai.

[in, optional] operation

Mewakili operasi asinkron awal yang akan dilakukan.

[in] callbackModel

Menunjukkan apakah panggilan balik sedang dipanggil panjang atau pendek. Untuk informasi selengkapnya, lihat WS_CALLBACK_MODEL

[in] callbackState

Penunjuk ke nilai yang ditentukan pengguna yang diteruskan ke setiap WS_ASYNC_FUNCTION.

[in, optional] asyncContext

Arahkan ke informasi untuk memanggil fungsi secara asinkron. Teruskan NULL untuk memanggil fungsi secara sinkron.

[in, optional] error

Penunjuk ke struktur WS_ERROR yang menerima informasi kesalahan tambahan jika fungsi gagal.

Mengembalikan nilai

Jika fungsi berhasil, fungsi akan mengembalikan NO_ERROR; jika tidak, kode kesalahan HRESULT akan dikembalikan.

Keterangan

Untuk pemahaman tentang bagaimana WWSAPI menangani operasi asinkron, lihat topik Model Asinkron .

Dalam banyak kasus, operasi asinkron terdiri dari operasi asinkron lainnya. Setiap operasi asinkron dapat mengembalikan WS_S_ASYNC menunjukkan panggilan balik akan dipanggil, atau kode keberhasilan atau kegagalan lainnya, dalam hal ini panggilan balik tidak akan dipanggil. Operasi harus disiapkan untuk menerima WS_ASYNC_CONTEXT NULL yang menunjukkan bahwa pemanggil meminta operasi dilakukan secara sinkron. Ini juga harus memastikan bahwa panggilan balik dipanggil dengan tepat. Dalam operasi asinkron yang kompleks, WsAsyncExecute menyederhanakan detail ini.

WsAsyncExecute beroperasi dengan memanggil panggilan balik yang ditentukan pengguna yang dapat memulai operasi asinkron dan menunjukkan fungsi yang akan dipanggil ketika operasi asinkron selesai. Urutan ini berlanjut hingga panggilan balik tidak mengatur fungsi lain untuk dipanggil. Pada titik ini, panggilan balik yang ditentukan oleh WS_ASYNC_CONTEXT akan dipanggil jika salah satu operasi selesai secara asinkron.

Parameter WS_ASYNC_STATE digunakan oleh WsAsyncExecute untuk mempertahankan statusnya, dan tidak dimaksudkan untuk diinisialisasi, diperiksa, atau digunakan oleh pemanggil. Namun, pemanggil harus mengalokasikan WS_ASYNC_STATE dan memastikan bahwa penelepon tetap hidup selama seluruh operasi asinkron. WS_ASYNC_STATE dapat digunakan kembali setelah operasi asinkron selesai.

Contoh AsyncAdd3ExplicitExample dan AsyncAdd3ImplicitExample menunjukkan penerapan fungsi asinkron yang sama secara manual menggunakan WsAsyncExecute.

Persyaratan

   
Klien minimum yang didukung Windows 7 [aplikasi desktop | Aplikasi UWP]
Server minimum yang didukung Windows Server 2008 R2 [aplikasi desktop | Aplikasi UWP]
Target Platform Windows
Header webservices.h
Pustaka WebServices.lib
DLL WebServices.dll