2017-08-21 4 views
-2

編集
I changed the title because I found the real cause of the freeze. The cause is in my awnserWPFアプリケーションの最初のコントロールディスプレイ凍結UI

XAMLが解析されますので、それが遅くなることがあります。次にコントロールが表示されると、XAMLが既に解析されているため、瞬時に表示されます。

Iは崩壊ビジュアル作成し、優先度の低いディスパッチャコールでそれらが見えるようdefered視覚ローディングシステムを使用して、UIの凍結を低減することを試みました。この作業はItemsControlに非常に多くの項目がありますが、最初の解析UIのフリーズは解決しません。

は、XAMLの解析によって引き起こされるフリーズを減らすための良い方法はありますか?

私は、アプリの起動時にすべてのXAMLを解析考えていました。それはスタートアップを遅くするだろうが、その後はアプリケーションがフリーズすることはありません。 難しいのは、すべてのBALMファイル(コンパイル済みXAML)を取得する方法と、WPFがそれらを探す場所と同じ場所に結果を格納する方法です。

+1

しかし、XAMLファイルは、アプリケーションをコンパイルするBAMLにコンパイルされています。 UIの読み込みを遅らせる必要があるという事実をさらに探求したいと思います。複雑すぎるため、おそらく解決すべき根本的な原因かもしれません。 –

+2

あなたは、Visual Studioの最新バージョンを使用している場合、私はあなたがあなたがいると思うのパフォーマンスのボトルネックを持っていることを確認するために、パフォーマンス・プロファイラツールを使用することをお勧めします。 VS2017では、[デバッグ]> [パフォーマンスプロファイラ]の下に表示されます。 –

答えて

0

私が間違っていました。減速はXAMLの解析から来ていませんでした。それはいくつかのDLLをロードしていた静的なコンストラクタから来ました。なぜそれが初めてだけ遅いのですか?静的な初期化をスレッドに移しました。

関連する問題