Я пишу приложение [net / wpf / c #], которое должно измерять, насколько быстро пользователь нажимает (отвечает) после прослушивания слова. Его называют тестом скорости обработки звука (PST), и средняя скорость человека составляет около 70-140 мс. Чтобы получить представление о точности генерируемых событий, я написал следующее.
public partial class MainWindow : Window
{
System.Diagnostics.Stopwatch w = new System.Diagnostics.Stopwatch();
public MainWindow () { InitializeComponent(); }
private void textBlock1_PreviewMouseDown (object sender, MouseButtonEventArgs e)
{
e.Handled = true;
w.Stop();
System.Diagnostics.Debug.WriteLine(w.ElapsedMilliseconds);
w.Reset(); w.Start();
}
private void Grid_KeyDown (object sender, KeyEventArgs e)
{
e.Handled = true;
w.Stop();
System.Diagnostics.Debug.WriteLine(w.ElapsedMilliseconds);
w.Reset(); w.Start();
}
}
private void Application_Startup (object sender, StartupEventArgs e)
{
Process thisProc = Process.GetCurrentProcess();
thisProc.PriorityClass = ProcessPriorityClass.RealTime;
ProcessThreadCollection myThreads = thisProc.Threads;
foreach (ProcessThread pt in myThreads) {
pt.PriorityLevel = ThreadPriorityLevel.TimeCritical;
}
}
Самое быстрое, что я могу щелкнуть, составляет около 100 мс, и если удерживать нажатой клавишу клавиатуры, то время отклика снижается до 30 мс. Есть ли способ сделать это быстрее? ТИА