WS_CALLBACK_MODEL列挙 (webservices.h)
コールバックのスレッド動作 ( たとえば、WS_ASYNC_CALLBACK) を指定します。
構文
typedef enum {
WS_SHORT_CALLBACK = 0,
WS_LONG_CALLBACK = 1
} WS_CALLBACK_MODEL;
定数
WS_SHORT_CALLBACK 値: 0 この値は、コールバックが短く呼び出されることを示すために使用されます。 コールバックが短く呼び出されると、長い計算や長い計算を避ける必要があります 呼び出しをブロックして、呼び出し元にすばやく戻ることができるようにします。 期間中 コールバックが短く実行されている場合、他の作業項目は実行できない可能性があります。 プロセス内で dequeued。 これにより、枯渇デッドロックが発生する可能性があります。 応答しないシステム、または使用率の低いシステム。 短く呼び出されたコールバック内で IO を実行する必要がある場合は、ベスト プラクティスは次のようになります。 非同期 IO (同期 IO の代わりに) を使用する場合は、長いブロック呼び出しを回避します。 |
WS_LONG_CALLBACK 値: 1 この値は、コールバックが長く呼び出されることを示すために使用されます。 呼び出し元にすばやく戻るために、long を呼び出したコールバックは必要ありません。 ただし、長いコールバックは限られたリソースであるため、常に可能であるとは限りません コールバック long を呼び出す場合は 。 コールバックを長く呼び出す前に、呼び出し元は別のスレッドがあることを確認する必要があります 必要に応じて作業をデキューできます。 たとえば、呼び出し元が作成する必要がある場合 スレッドができません。その後、コールバック short を呼び出す必要があります。 すべてのコールバックは、短いだけでなく、長い間呼び出されることに対処できる必要があります。
|
注釈
コールバックが long または short のどちらを呼び出すかは、呼び出し元の実装にかかります。 チャネルとリスナーの実装では、WS_CHANNEL_PROPERTY_ASYNC_CALLBACK_MODEL および WS_LISTENER_PROPERTY_ASYNC_CALLBACK_MODEL プロパティを使用して非同期コールバックに対してこれを制御する方法が提供されます。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 7 [デスクトップ アプリ |UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2008 R2 [デスクトップ アプリ |UWP アプリ] |
Header | webservices.h |