Я установил таймер для вызова события в моем приложении. Проблема в том, что выполнение события перекошено другими операциями Windows. Ex. открытие и окно, загрузка веб-страницы. Мне нужно, чтобы событие оправдывалось точно вовремя, каждый раз.
Когда я впервые настроил приложение, использовал звуковой файл, например метроном, для прослушивания равномерного включения, в устойчивом состоянии, когда оно включено, но как только что-то происходит в среде Windows, звук срабатывает медленнее затем немного сбавил скорость, чтобы наверстать упущенное.
Итак, я добавил метод регистрации событий, чтобы сделать отметки таймера. Из этих данных видно, что приложение windows не влияет на таймер, но это влияет на вызовы событий моего приложения. Я понял это, проверив datetime.now в событии, и если я установил его на 250 миллисекунд, то есть 4 клика в секунду. Вы получаете данные примерно как ниже.
(сек) :( мс)
1: 000
1: 250
1: 500
1: 750
2: 000
2: 250
2: 500
2: 750
3: 000
3: 250
3: 500
3: 750
(допустим, я выполнил какое-то событие Windows) (время будет искажено)
4: 122
4: 388
4: 600
4: 876
(прекратить делать то, что я делал в Windows)
(собираюсь сократить данные для упрощения, мой список был длиной 30 секунд)
5: 124
5: 268
5: 500
5: 750
(вы бы вернули время на те же миллисекунды, что и в начале)
6: 000
6: 250
6: 500
6: 750
7: 000
7: 250
7: 500
7: 750
Так что я думаю, что таймер продолжает срабатывать на одну и ту же миллисекунду каждый раз, но это событие, которое искажается, чтобы сработать время другими операциями Windows.
Это не огромный перекос, но для того, что мне нужно сделать, это неприемлемо.
Есть ли что-нибудь, что я могу сделать в .NET, надеясь использовать приложение XAML / WPF, это исправит перекос событий?
ТНХ.