线程安全性
此 API 中的所有函数都可以安全地从不同的线程同时调用。 但是,作为参数传递给函数的每个对象都具有特定的线程行为,如下所述。
以下句柄是单线程的,不支持对特定实例执行并发操作:
- WS_HEAP
- WS_MESSAGE
- WS_XML_BUFFER
- WS_XML_READER
- WS_XML_WRITER
- WS_ERROR
- WS_OPERATION_CONTEXT
- WS_POLICY
- WS_METADATA
- WS_SECURITY_TOKEN
- WS_SECURITY_CONTEXT
以下句柄是自由线程的,并且支持特定实例的并发操作:
对于所有这些句柄,线程是按照操作 (而不是函数调用) 定义的。 同步调用的函数与异步调用的函数的运算定义方式不同:
- 对于以同步方式调用的函数,操作在执行函数期间处于挂起状态。
- 对于异步调用的函数,如果函数返回 非WS_S_ASYNC 则操作在执行函数期间处于挂起状态。 但是,如果函数返回 WS_S_ASYNC ,则操作将挂起,直到调用 WS_ASYNC_CALLBACK 。 有关异步调用函数的详细信息,请参阅 异步模型 主题。 有关错误代码,请参阅 Windows Web 服务返回值。
未能遵循对象的线程协定将导致未定义的行为。