1

WPFマルチスレッドアプリケーションのパフォーマンスを測定する必要があります。次のように
なります。1。ボタンクリックがUIでトリガーされます->UIスレッドが処理を開始します2.UI
スレッドがバックグラウンドで別のスレッドを開始します。 、準備ができたら、結果をUIスレッドに戻します
3.データバインディングが発生します
4.レンダリングが発生します

スレッドの数は私にはわかっていますが、順序はわかりません。buttonClickからレンダリングの終了までの時間をどのように測定できますか?UIスレッドはイベントを発生させますか、それとも終了時にプロパティを発生させますか?またはそうでない場合、私はそれを作ることができますか?
どんな助けでも感謝されるでしょう。

4

2 に答える 2

1

http://www.kynosarges.de/WpfPerformance.htmlでおそらく役立つものを見つけました:

レンダリングスレッドに直接アクセスすることはできませんが、WPFは、CompositionTarget.Renderingイベントを介した1つの間接的なアクセスポイントを提供します。このイベントは通常、レンダリングする新しいコンテンツがあるかどうかに関係なく、モニターのリフレッシュレート(通常は1秒間に60回)で発生します。これは主に、モニターが表示できる限り迅速に表示の更新を生成する必要があるカスタムアニメーションを対象としています。

于 2012-04-12T13:05:12.590 に答える
0

WPF Performance Suite、特にPerforatorとVisualProfilerを確認する必要があります。VisualProfilerでは、 「アプリケーションCPU使用率の詳細」セクションを作成できます。その1つは次のとおりです。

Render(MediaContext)レンダリングパス中に発生します。このメソッドは、最終的に各要素のOnRenderメソッドを呼び出し、すべての要素のOnRenderの合計コストを理解するのに役立ちます。

また

レンダリングスレッドレンダリングスレッドでレンダリング命令を実行するときに発生します。これは、レンダリングにバインドされたアプリケーションを検出するのに役立ちます。

お役に立てれば。

于 2012-04-12T13:01:36.557 に答える