1

これは単純な Google または MSDN の回答である必要がありますが、検索が不十分です。多くの描画に GDI を使用する小さな win32 アプリケーションがあります。メモリ デバイス コンテキストに TextOut() を使用して「ラベル」を配置し、TextOut() 呼び出しの直後に BitBlt を配置すると、テキストが断続的に表示され、ちらつきます。BitBlt() は別のスレッドにありますが、作業中のグラフィックをコピーしないようにするクリティカル セクションがあります。フローの早い段階で TextOut() を配置すると、つまり BitBlt() の近くに配置しないと、常に表示されます。私が理解できるのは、 TextOut() が完了する前に返されることだけです..誰かが私にドキュメントを指摘したり、別の理論を提案したりできますか?

参考までに - 私はすでにチェックアウトしました: http://msdn.microsoft.com/en-us/library/dd145133(v=vs.85).aspx

ありがとう!

4

1 に答える 1

2

はい、そうです。 GdiFlush()は、すべての GDI 更新をビデオ アダプタに強制するための呼び出しです。

足を撃つ方法は他にもたくさんあります。GDI はまったくスレッドセーフではないので、奇跡を期待しないでください。

于 2012-05-18T00:04:09.390 に答える