非常に不安定なアプリケーションでWPFはレイアウト/レンダリングサイクルをどのように最適化しますか?
たとえば、カスタム コントロールを立て続けに 2 回無効にした場合、レンダリングは 2 回行われますか? データ/プロパティの更新レートがメインのレンダリング レートよりも速い場合、パフォーマンスの問題はありますか?
非常に不安定なアプリケーションでWPFはレイアウト/レンダリングサイクルをどのように最適化しますか?
たとえば、カスタム コントロールを立て続けに 2 回無効にした場合、レンダリングは 2 回行われますか? データ/プロパティの更新レートがメインのレンダリング レートよりも速い場合、パフォーマンスの問題はありますか?
私の経験に基づくと、十分に高速であれば、2回レンダリングされることはないと言えます。私は100%確信していませんが、これが私がこれを考える理由です:
非常に重いアプリケーション(数千のコントロール)がありました。それは航空機のコックピットで、すべてwpfで、各ボタン、スイッチ、画面はジェスチャーまたはマウスで移動できました。
コックピットは10000ピクセル×10000ピクセルで、ズームイン/ズームアウト(マウスホイールを使用)を実装し、マウスの右ボタンをクリックするとパンしました。
最適化前は非常に遅く、遅いため、「ズーム」ステップまたは「パン」ステップごとに約1秒かかりました。
1回ズームすると(たとえばズーム* 1.2)、1秒かかりました
10回ズーム(ズーム* 1.2 X 10)すると、10秒もかからず、スクロール速度にもよりますが、おそらく2秒ほどかかります。また、各「ズームステップ」はレンダリングされず、最後のステップのみがレンダリングされます。 ..