1

GDI+ テクノロジを使用して C# でいくつかのコンポーネントを開発しました...コンポーネントを再描画するために無効化関数を使用しています..いくつかの調査を行い、CPU 使用率を確認した後..無効化関数が呼び出されると、CPU 使用率が突然増加することがわかりますしばらくするとリリースされます..コンポーネントの再描画が時々呼び出される場合、これは問題ありません..しかし、私の場合、作成したコンポーネントはピーク時に何度も呼び出されます..突然、CPU使用率が100%になります.. .そしてシステムがハングしているようです..多くのコード最適化を行いましたが、無効なメソッドがパフォーマンス全体を殺しているようです..知りたいのは..このメソッドで実際に何が呼び出されているか..そしてベストプラクティスは何ですか.この方法をうまく活用して…

4

1 に答える 1

1

1) Perfview を使用してアプリケーションをプロファイリングします: http://www.microsoft.com/en-us/download/details.aspx?id=28567

2) Invalidate メソッドは実際には描画しないでください。再描画が必要なOSを伝えるだけです。実際に描画するのは OnPaint メソッドです。描画方法を確認してください。通常、GDI ベースのアプリケーションはダーティ リージョンにクエリを実行して、再描画の領域を制限します。

于 2012-07-27T16:56:34.393 に答える