IDirectPlay8ThreadPool::DoWork メソッド
IDirectPlay8ThreadPool::DoWork メソッド
現在スケジュールされている作業を実行する。
構文
HRESULT DoWork(
const DWORD dwAllowedTimeSlice,
const DWORD dwFlags
);
パラメータ
- dwAllowedTimeSlice
[in] 作業が完了するまでに利用できる時間を指定する。すぐに利用可能な項目をすべて実行できるようにするには、INFINITE に設定する。 - dwFlags
[in] 予約済み。0 でなければならない。
戻り値
追加作業がすぐに利用できない場合は DPN_OK を返す。dwAllowedTimeSlice が INFINITE に設定しておらず、未処理の作業項目を残して指定した時間が過ぎた場合、DPNSUCCESS_PENDING が返される。それ以外の場合、次のいずれかのエラーを返す。
DPNERR_UNINITIALIZED | 要求されたオブジェクトが初期化されていない。 |
DPNERR_INVALIDFLAGS | このメソッドに渡されたフラグは無効である。 |
DPNERR_NOTREADY | オブジェクトを使う準備ができていない。 |
DPNERR_NOTALLOWED | この機能は、このオブジェクトでは許可されていない。 |
注意
このメソッドを使うと、Microsoft® DirectPlay® は独自のスレッドなしに動作できる。タイムクリティカルな処理がほぼ正確に実行できるように、一定間隔でこのメソッドを呼び出すことが求められている。
dwAllowedTimeSlice パラメータは 0 ~ 60,000 ミリ秒 (1 秒) に設定する必要がある。また、INFINITE に設定することもできる。0 に設定した場合、作業項目は 1 つまでしか実行されない。
スレッド数が 0 に設定されている場合、このメソッドは呼び出せない。現在アクティブなスレッドがある場合、このメソッドは DPNERR_NOTREADY を返す。
複数のスレッドが同時に、再帰的に、または DirectPlay コールバック内でこのメソッドを呼び出そうとした場合、DPNERR_NOTALLOWED が返される。