다음을 통해 공유


WS_CALLBACK_MODEL 열거형(webservices.h)

콜백의 스레딩 동작(예: WS_ASYNC_CALLBACK)을 지정합니다.

Syntax

typedef enum {
  WS_SHORT_CALLBACK = 0,
  WS_LONG_CALLBACK = 1
} WS_CALLBACK_MODEL;

상수

 
WS_SHORT_CALLBACK
값: 0
이 값은 콜백이 짧은 호출됨을 나타내는 데 사용됩니다.


콜백이 짧게 호출되면 계산이 길거나 길지 않도록 해야 합니다.
호출자에게 신속하게 돌아갈 수 있도록 호출을 차단합니다. 시간 동안
콜백이 짧게 실행되고 있는 경우 다른 작업 항목이 실행되지 않을 수 있음
프로세스 내에서 큐에서 해제되었습니다. 이로 인해 기아 교착 상태가 발생할 수 있습니다.
응답하지 않는 시스템 또는 활용도가 저조한 시스템입니다.


짧은 호출된 콜백 내에서 IO를 수행해야 하는 경우 모범 사례는
비동기 IO(동기 IO 대신)를 사용하여 긴 차단 호출을 방지합니다.
WS_LONG_CALLBACK
값: 1
이 값은 콜백이 오래 호출됨을 나타내는 데 사용됩니다.


호출자에게 신속하게 반환하려면 long으로 호출된 콜백이 필요하지 않습니다.


그러나 긴 콜백은 제한된 리소스이므로 항상 가능한 것은 아닙니다.
는 긴 콜백을 호출합니다.


긴 콜백을 호출하기 전에 호출자는 다른 스레드가 있는지 확인해야 합니다.
필요에 따라 작업을 큐에서 해제할 수 있습니다. 예를 들어 호출자가 만들어야 하는 경우
스레드가 없으면 콜백을 짧게 호출해야 합니다.


모든 콜백은 짧은 시간 동안 호출되는 것을 처리할 수 있어야 합니다.

  • 짧게 호출되지만 long이 필요한 콜백은 이를 로 해석할 수 있습니다.
    리소스가 부족할 수 있는 오류 조건입니다. 예를 들어 CreateThread 또는 를 호출합니다.
    이 상황에서 QueueUserWorkItem도 실패할 수 있습니다. 쾌적
    콜백은 리소스가 부족한 상황에서 오래 실행한 다음 스레드를 실행하는 데 필요합니다.
    비동기 작업을 시작하기 전에 이 용도로 예약해야 합니다.

  • 길게 호출되지만 짧은 것으로 예상되는 콜백은 정상적으로 작동할 수 있습니다.

설명

콜백이 long 또는 short로 호출되는지 여부는 호출자 구현에 달려 있습니다. 채널 및 수신기 구현은 WS_CHANNEL_PROPERTY_ASYNC_CALLBACK_MODEL WS_LISTENER_PROPERTY_ASYNC_CALLBACK_MODEL 속성을 통해 비동기 콜백에 대해 이를 제어하는 방법을 제공합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 7 [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2008 R2 [데스크톱 앱 | UWP 앱]
머리글 webservices.h