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