У меня есть приложение Windows Forms, которое реагирует на события Midi, возникающие при нажатии кнопки на педальном переключателе Midi / USB. Это прекрасно работает с очень небольшой задержкой почти на всех ПК ... Однако на планшете Microsoft Surface 4 (и, вероятно, 5, 6 и т. Д.) Microsoft, похоже, переводит драйвер Midi (или USB) в спящий режим как можно скорее после звука перестает играть на устройстве ... сразу после! Я уверен, что Surface делает это, чтобы сэкономить энергию / батарею, но это мешает моему приложению.
В моем приложении мне нужно реагировать на нажатие кнопки педального переключателя практически без задержки независимо от того, воспроизводится звук в данный момент или нет. На первый взгляд, после того, как драйвер Midi переходит в спящий режим, задержка пользователя между нажатием кнопки на педальном переключателе midi / USB и появлением соответствующего события midi, поступающего в код моего приложения, составляет около 1 секунды. Эта задержка мешает моему приложению, поскольку мое приложение использует нажатия кнопок для запуска музыки / звука / заметок, и эта задержка (фактически прямая длительная задержка в 1 секунду) делает невозможным воспроизведение музыки.
Учитывая некоторую работу, которую я проделал, пытаясь обойти эту проблему, я считаю, что это скорее спящий драйвер midi, чем спящий драйвер USB. Я создал некоторый код, который отправлял поддельное сообщение Midi каждую 1 секунду, чтобы держать драйвер midi активным, и это работало, но я столкнулся с некоторыми другими проблемами, которые привели к тому, что обходной путь не был хранителем / возможностью.
Есть ли способ заставить Windows и планшет MS Surface держать драйвер midi (или USB) в активном состоянии (не допустить, чтобы драйвер спал)? Есть ли реестр или другой параметр, который управляет спящим драйвером midi? Или есть код, который я могу добавить в свое приложение, которое заставит драйвер midi не спать?
Спасибо!