私は高速レンダリングアプリケーションを持っており、ログメッセージを別ウィンドウに出力したいと思います。アプリケーションはマルチスレッド化されており、すべてのスレッドで任意の時点で何かが記録される可能性があります。ウィンドウへのメッセージ、ゲームアプリケーションのログ
私はすでに出力用にコンソールを使用していますが、うまくいきました!私が何をしたか
た:
- スレッドが言いたいことがあるときはいつでも、それは「フラッシュがあり、キューをロックし、キュー
- にそのメッセージを挿入LogMessageにキュー
- を作成します。 "スレッドは、何らかのスレッドが何かを記録するまでスリープします(
log()
を呼び出すと、スレッドはスリープ状態になります)。そのジョブは、すべてのログメッセージをファイルとコンソールにフラッシュします。
これは、ファイルとコンソールの両方のロギングでうまくいきました。どちらも、印刷呼び出しを受け取っているスレッドがアプリケーションのメインスレッドと異なっていても気にしないようです。しかし、any other window you create does care。今作成したseparate RichText windowに印刷しようとすると、フラッシュスレッドが機能しなくなります。
これは残念です。今度は、のフラッシュスレッドコードをメインスレッド(レンダリングループを実行するのと同じもの)に移動するという唯一の解決策があります。これは、フレームの表示に潜在的に長い遅延があることを意味します(ログキュー彼らは出力することができます)、私はしたくないです。