4

.Net Windows Forms アプリが深刻なデスクトップのちらつきを引き起こすケースを経験した人はいますか?

ユーザーコントロールにデータグリッドビューを持つ Windows フォームアプリ (.Net 3.5 、C#) があります。時折、他のアプリケーションを同時に実行しているときに (Louts Notes で見られますが、最悪の動作は Reuters Bridge Station のユーザーです)、自分のアプリに切り替えてから別のアプリに切り替えると、デスクトップ全体がちらつき、すべてがフリーズします。数秒から 1 分近くのユーザー インタラクション。(Windows XP Professional を使用しているすべてのユーザー) これは、グリッド内の少量のデータでも発生します。アプリでカスタム ペイントを行っていません。また、この時点で更新を呼び出すコードが実行されていないことは確かです。再描画します。

私はすでにダブルバッファリングを有効にしているので、それは解決策ではありません。

私が (MS フォーラムで) 見つけた興味深いことの 1 つは、フォームの TransparencyKey を設定すると問題が解決する場合があることです。(特に Louts Notes ユーザー向けですが、Bridge Station ユーザー向けではありません。)影響を受けるユーザーは、データ入力後、他のアプリに切り替える前にアプリを最小化することで、この問題を回避しています。私はこれについて髪を引っ張っているので、どんなアイデアでも大歓迎です。そして、私は最初から髪が多すぎません。

YS

4

2 に答える 2

1

Visual Studioからデバッグするときにこれが発生した場合は、フレームワークのデバッグとトレースポイントを有効にしてログエントリを出力ウィンドウに書き込むことができます。この手法は、Winformsの奇妙な問題の根底に到達するのに非常に役立ちます。

過度にまたは不必要に呼び出されていると思われるものを見つけたら、ブレークポイントにとどまり、スタックを調べて問題の原因を確認できます。

于 2010-07-05T19:47:32.320 に答える
0

盲目のリスのトラブルシューティングの学校を使用して、ナットを見つけたようです... つまり、回避策です-ディスプレイのハードウェアアクセラレーションを最小値 (「なし」のすぐ上) にダイヤルダウンしました。これは、TransparencyKey の設定とともに、私の問題を解決したようです。

最終的な分析では、これはディスプレイ ドライバーの問題 (おそらくマルチモニター固有のもの) を示していますが、.NET の問題もあります。1) 問題はプログラムの実行時にのみ発生します。2) テスト マシンのドライバーを更新しても、問題は解決しません。

于 2010-07-15T15:54:37.613 に答える