WS_CALLBACK_MODEL webservices.h (列舉)

指定回呼 (的線程行為,例如 WS_ASYNC_CALLBACK) 。

Syntax

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

常數

 
WS_SHORT_CALLBACK
值: 0
這個值是用來指出叫用回呼的簡短。


叫用回呼簡短時,應該避免冗長的計算或冗長
封鎖呼叫,使其可以快速返回呼叫端。 期間
回呼正在執行簡短,其他工作專案可能無法執行
在進程內清除佇列。 這可能會導致耗盡死結,
沒有響應的系統,或使用量過低的系統。


如果需要在叫用簡短的回呼內執行 IO,最佳做法是
表示使用異步 IO (,而不是同步 IO) ,以避免長時間封鎖呼叫。
WS_LONG_CALLBACK
值: 1
這個值用來指出回呼叫用時間很長。


不需要呼叫長回呼,即可快速返回呼叫端。


不過,長回呼是有限的資源,因此不一定可行
表示叫用回呼 long。


叫用回呼長之前,呼叫端必須確定有另一個線程
可視需要清除佇列工作。 例如,如果呼叫端需要建立
線程但無法執行,則必須叫用回呼 short。


所有回呼都必須能夠處理被叫用的簡短和完整時間:

  • 叫用簡短但需要long的回呼可以將它解譯為
    錯誤狀況,可能是因為資源不足。 例如,呼叫 CreateThread 或
    在此情況下,QueueUserWorkItem 也可能失敗。 如果
    回呼需要在低資源情況下執行長,然後是線程
    針對此目的,必須先保留,才能起始異步操作。

  • 叫用長但預期簡短的回呼可以正常運作。

備註

回呼的叫用時間長或短是否由呼叫端實作所決定。 通道和接聽程式實作可讓您透過WS_CHANNEL_PROPERTY_ASYNC_CALLBACK_MODEL和WS_LISTENER_PROPERTY_ASYNC_CALLBACK_MODEL屬性控制異步回呼。

規格需求

需求
最低支援的用戶端 Windows 7 [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2008 R2 [傳統型應用程式 |UWP 應用程式]
標頭 webservices.h