CWinThread::OnIdle
更新 : 2007 年 11 月
アイドル処理を行う場合は、このメンバ関数をオーバーライドします。
virtual BOOL OnIdle(
LONG lCount
);
パラメータ
- lCount
スレッドのメッセージ キューが空のときに OnIdle 関数が呼び出されると、そのたびに増加されるカウンタ。このカウンタは、新しいメッセージが処理されるたびに 0 にリセットされます。パラメータ lCount を使うと、スレッドがメッセージを処理せずにアイドル状態になっている時間の相対的な長さを調べることができます。
戻り値
さらにアイドル処理時間が必要な場合は 0 以外を返します。アイドル処理時間が必要ない場合は 0 を返します。
解説
スレッドのメッセージ キューが空だと、既定のメッセージ ループで OnIdle 関数が呼び出されます。独自のバックグラウンド アイドル処理を呼び出すには、自身でオーバーライドした関数を使用します。
OnIdle 関数は、これ以上のアイドル処理時間を必要としないことを示すために 0 を返します。パラメータ lCount は、メッセージ キューが空のときに OnIdle 関数が呼び出されるたびに増分され、新しいメッセージが処理されるたびに 0 にリセットされます。このカウントに基づいて、別のアイドル処理ルーチンを呼び出すことができます。
このメンバ関数の既定の実装では、一時オブジェクトや未使用のダイナミック リンク ライブラリがメモリから解放されます。
このメンバ関数は、ユーザー インターフェイス スレッドでだけ使用されます。
OnIdle 関数から戻るまでアプリケーションはメッセージを処理できないので、この関数で長い処理を行わないようにしてください。
必要条件
ヘッダー : afxwin.h