マルチスレッドといえばそうなんですけど、
FPSのスレッドがしていることは、
一定時間Sleepして::PostMessageでユーザー定義メッセージを
ウインドウに送っているだけです。
それ以外、変数を操作したりWindowsのシステムにアクセスしたりとかは
何もしていません。
Window、Direct3D、その他もろもろは同一スレッドなんで
実質シングルスレッドと殆ど変わりません。
キーを押された→WM_KEYDOWNメッセージハンドラで、
FPSスレッド停止しダイアログ呼び出し、こんな感じです。
このFPSスレッド停止をSuspendにするとダメ、DestroyにするとOKなんですよね。
まあダイアログをモードレスして作り直してどうなるか試してみます。