2011-08-10 4 views
2

私はwinformsアプリを持っていて、ユーザーが何をクリックしたかによって、時々いくつかのウィンドウがポップアップします。最近、ユーザーは、ポップアップが表示には時間がかかりすぎると不平を言っています。コードをプロファイリングしたり、ストップウォッチを入れたりすると、C#コードの処理が約50msでShow()メソッドを処理することがわかりますが、ウィンドウ自体はほとんど表示されません。Winformsフォームを表示するのにかかる時間を測定することは可能ですか?

実際にウィンドウが表示されるまでの時間を測定する方法はありますか?

答えて

1

最初のOnPaintコールまでの時間を測定する方法があります。これは、WM_PAINTメッセージへの応答と呼ばれ、再描画が必要なときにWindowsによってウィンドウに送信されます。 base.OnPaint()コールの前と後の両方で測定を行う場合は、実際の描画コードが完了するまでの時間も確認できます。

3

図面が完成した後、表示されたイベントが発生すると思います。

Form.Shown EventOrder of Events in Windows Forms

+0

を参照してください。実はこれはあなたのフォームが表示されるようにするために、それにかかる時間を測定しません。少なくとも、私がこれをチェックしたとき、Shownイベントは50ms後に発生しましたが、フォームは数百ミリ秒間表示されませんでした。 –

関連する問題