2012-02-20 11 views
0

xamlアニメーションはメインスレッドをブロックしますか?私は多くのデータといくつかのアニメーションを持つ大きなグリッドを表示していますが、バックグラウンドスレッドのすべて(プロパティの変更)でも、UIは滑らかではありません。xamlアニメーションはメインスレッドをブロックしますか?

私は(必要といくつかの呼び出し)、いくつかのDispatcher.BeginInvokeを持っているとして、私は多分アニメーションが呼び出すが遅く行くために作ることを考えていました。私は正しい?

ありがとうございます。

+0

UIに書き込むものはすべてメインスレッド上になければなりません。あなたは、CPUがすべてをダウンさせるという競合があるかもしれません。タスクマネージャでCPUをチェックしてください。私の知る限り、アニメーションはメインスレッドをブロックしません。 – Paparazzi

+0

Mmmm ...多分GPUに関連していますか?デスクトップでは、遠隔デスクトップを介して接続されている仮想サーバーを膝の上に置いて、多かれ少なかれ問題なく動作します。 –

+0

SoMoS私はあなたがこれは遠隔地であると述べたはずです。 RDPプロトコルはアニメーションには適していません - 同じリンク上でYouTube動画を見てみましょう:-) –

答えて

1

私はプロファイラに投資することをお勧めします。確かに、アニメーションはUIスレッド上で実行され、アニメーションの大量使用が絡み合いの原因になる可能性がありますが、確かにわかる方法はありません。 C#のをプロファイリングするための

私の好みはdotTraceであるが、他のトンはそこにあります。 WPF Performance Suiteには、マイクロソフトのWPF固有の診断ツールもありますが、試していません。

+0

ええ、私はアプリケーションのプロファイリングを考えていましたが、純粋なxamlコードなのでアニメーションの読み込み方法はわかりません...推奨されるスイートを見てください。 –

+0

starndard VS2010プロファイラーを使用すると、ボトルネックがDispatcher.Invoke呼び出しにあることがわかりますが、メインUIがブロックされている理由はわかりません。 –

+0

これは、通常、バックグラウンドスレッドがUIに頻繁に呼び出すことを示す記号です(たとえば、バックグラウンドスレッドでタイマーを実行していて、UIで何かをしている場合)。それの上流の呼び出し元は何ですか?各呼び出しで実行される頻度や作業量を減らすことはできますか? –

関連する問題