WS_CALLBACK_MODEL 枚举 (webservices.h)
指定回调 (的线程行为,例如 ,WS_ASYNC_CALLBACK) 。
语法
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 的回调不需要快速返回到调用方。 但是,长回调是一种有限的资源,因此并不总是可以 调用 long 回调。 调用长回调之前,调用方必须确保存在另一个线程 可根据需要取消排队工作。 例如,如果调用方需要创建 线程,但无法,则它必须调用短回调。 所有回调都必须能够处理短和长调用:
|
注解
回调是长调用还是短调用由调用方实现决定。 通道和侦听器实现提供了一种通过 WS_CHANNEL_PROPERTY_ASYNC_CALLBACK_MODEL 和 WS_LISTENER_PROPERTY_ASYNC_CALLBACK_MODEL 属性来控制异步回调的方法。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 7 [桌面应用 |UWP 应用] |
最低受支持的服务器 | Windows Server 2008 R2 [桌面应用 |UWP 应用] |
标头 | webservices.h |