1

Button_ClickWPFウィンドウ内の2つのGUIイベント間の間隔、具体的には、イベントとイベントの間の時間を計る必要がありますCanvas_MouseLeftButtonDownSystem.Diagnostics.Stopwatchこの間隔を測定するためにaへの呼び出しを使用しています。Stopwatchクラスは内部的に非常に正確ですが(のような低解像度の代替手段とは対照的にDateTime.Now)、GUIによって発生するイベント間には、フレームレートの逆数のオーダーで比較的大きな粒度があると思います(ただし、人間のスケール)ただし、非常に高速なクリック(私が管理できる最善の方法は明らかに50ミリ秒でした)の場合、仮想のGUIイベントの遅延が重要になる可能性があります。エラーバーと有効数字を確立するためだけに、この粒度が何であるかを誰かが知っていますか?

4

1 に答える 1

1

SendInputを使用してマウスクリックをGUIに送信するものを設定できます。何かのようなもの:

Initialize manual reset event
Start stopwatch_1
Send mouse click
wait for event
Get elapsed time of stopwatch_1

イベントハンドラーの場合:

Get elapsed time of stopwatch_1
set event

基本的に、ボタンをクリックしてテストを開始し、クリックするボタンの上にマウスを置くことができるように、数秒遅らせます。

イベントハンドラーで時間を読み取ると、クリックが受信されてからハンドラーが実行されるまでの待ち時間がわかります。最終読み取りは合計経過時間であり、イベントハンドラーは何も実行しないため、合計オーバーヘッドになるはずです。イベントの処理にかかる時間を差し引いてください。

GUIスレッドで待機したくないことに注意してください。SendInput呼び出しを別のスレッドで実行する メソッドが必要になります。

于 2011-07-30T17:53:59.777 に答える