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