此 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 Services 返回值。
未能遵循对象的线程处理协定将导致未定义的行为。