スレッド セーフ
この 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 サービスの戻り値」を参照してください。
オブジェクトのスレッドコントラクトに従わないと、未定義の動作が発生します。