現在、c#で(.NETを使用して)作成しているアプリケーションがあります。このアプリケーションでは、ユーザーが画面に画像を表示したらすぐに、キーを押して応答するまでタイマーを開始する必要があります。
モニターの入力遅延と応答時間、キーボードがメッセージを物理的に送信するのにかかる時間、メッセージを処理するためのOSなどを考えると、これは実際には非常に難しいことに気付きました。
しかし、私はそれをほぼ一定のエラーに減らすために最善を尽くしています(応答時間の結果は、あるユーザーを次のユーザーと比較するために使用されるため、一定のエラーは実際には問題ではありません)。ただし、厄介なハードルはモニターのリフレッシュレートによって引き起こされる変数です。これは、onPaintメッセージが呼び出されて処理されたときに収集されるため、画像が実際に処理されてグラフィックバッファーから送信されたという意味ではありませんか?
残念ながら、時間制限やその他のコミットメントにより、Windows用のc#でこのタスクを続行することが現実的に制限されます。
では、私が疑問に思っていたのは、OpenGLまたはDirectXですべての描画を処理するのか、それともOpenGLまたはDirectXのいずれかを使用して画面が更新されたときにイベントを作成できるのであれば、それでもよいのでしょうか。
以前に私に与えられたもう1つの提案は、V-Syncに関するものでした。これをオフにすると、画像は描画されるとすぐに送信されますか?モニターのリフレッシュレートに同期した設定レートで画像を送信するのとは対照的に?