Поделиться через


Потокобезопасность

Все функции в этом API безопасно вызывать одновременно из разных потоков. Однако каждый объект, передаваемый в качестве параметра в функции, имеет определенное поведение потоков, как описано ниже.

Следующие дескрипторы являются однопоточными и не поддерживают параллельные операции для конкретного экземпляра:

Следующие дескрипторы являются свободными потоками и поддерживают параллельные операции для конкретного экземпляра:

Для всех этих дескрипторов потоки определяются с точки зрения операций (а не вызовов функций). Операция определяется по-разному для функций, вызываемых синхронно, и для функций, вызываемых асинхронно:

  • Для функций, вызываемых синхронно, операция находится в состоянии ожидания во время выполнения функции.
  • Для функций, вызываемых асинхронно, если функция возвращает код возврата, отличный от WS_S_ASYNC операция находится в состоянии ожидания во время выполнения функции. Однако если функция возвращает WS_S_ASYNC , операция ожидается до вызова WS_ASYNC_CALLBACK . Дополнительные сведения об асинхронном вызове функций см. в разделе Асинхронная модель . Коды ошибок см. в разделе Возвращаемые значения веб-служб Windows.

Несоблюдение контракта потоков для объекта приведет к неопределенному поведению.