enumerasi WS_CALLBACK_MODEL (webservices.h)

Menentukan perilaku utas panggilan balik (misalnya, WS_ASYNC_CALLBACK).

Sintaks

typedef enum {
  WS_SHORT_CALLBACK = 0,
  WS_LONG_CALLBACK = 1
} WS_CALLBACK_MODEL;

Konstanta

 
WS_SHORT_CALLBACK
Nilai: 0
Nilai ini digunakan untuk menunjukkan bahwa panggilan balik dipanggil singkat.


Ketika panggilan balik dipanggil pendek, itu harus menghindari komputasi panjang atau panjang
memblokir panggilan sehingga dapat kembali ke penelepon dengan cepat. Selama waktu
bahwa panggilan balik sedang berjalan singkat, item kerja lainnya mungkin tidak dapat
di-dequeu dalam proses. Hal ini dapat menyebabkan kebuntuan kelaparan,
sistem yang tidak responsif, atau sistem yang kurang digunakan.


Jika perlu melakukan IO dalam panggilan balik yang dipanggil singkat, praktik terbaiknya adalah
untuk menggunakan IO asinkron (bukan IO sinkron), untuk menghindari panggilan pemblokiran yang panjang.
WS_LONG_CALLBACK
Nilai: 1
Nilai ini digunakan untuk menunjukkan bahwa panggilan balik dipanggil lama.


Panggilan balik yang dipanggil lama tidak diperlukan untuk kembali ke pemanggil dengan cepat.


Namun, panggilan balik panjang adalah sumber daya terbatas, sehingga tidak selalu mungkin
untuk memanggil panggilan balik panjang.


Sebelum memanggil panggilan balik lama, penelepon harus memastikan bahwa ada utas lain
tersedia untuk menghapus antrean pekerjaan seperlunya. Misalnya, jika penelepon perlu membuat
utas tetapi tidak dapat, maka harus memanggil panggilan balik pendek.


Semua panggilan balik harus dapat berurusan dengan dipanggil pendek serta panjang:

  • Panggilan balik yang dipanggil pendek tetapi membutuhkan waktu lama dapat menafsirkan ini sebagai
    kondisi kesalahan, kemungkinan karena sumber daya yang rendah. Misalnya, memanggil CreateThread atau
    QueueUserWorkItem dalam situasi ini juga cenderung gagal. Jika a
    panggilan balik diperlukan untuk berjalan lama dalam situasi sumber daya rendah, lalu utas
    untuk tujuan ini harus dicadangkan sebelum memulai operasi asinkron.

  • Panggilan balik yang dipanggil lama tetapi mengharapkan singkat dapat berjalan tentang pekerjaannya secara normal.

Keterangan

Apakah panggilan balik akan dipanggil panjang atau pendek hingga implementasi pemanggil. Implementasi saluran dan pendengar menyediakan cara untuk mengontrol ini untuk panggilan balik asinkron melalui properti WS_CHANNEL_PROPERTY_ASYNC_CALLBACK_MODEL dan WS_LISTENER_PROPERTY_ASYNC_CALLBACK_MODEL .

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 7 [aplikasi desktop | Aplikasi UWP]
Server minimum yang didukung Windows Server 2008 R2 [aplikasi desktop | Aplikasi UWP]
Header webservices.h