スレッドにした無限ループで描画しています。

Windowの終了ボタンが押されたときは、
ウィンドウプロシージャ内でループ停止フラグを立てた後、
Sleepして1ループ終わるのを待ってから、
デバイスを解放したいんですが、
ウィンドウプロシージャ内でSleepすると、
描画ループ内の、IDirect3DDevice9::EndScene();
も一緒に止まってしまいます。
なんででしょうか?