WPF о Windows Embedded Framework вопрос - PullRequest
3 голосов
/ 26 июня 2009

В настоящее время я разрабатываю приложение WPF для одноплатного компьютера AMD Geode (сенсорный экран).

Windows Embedded Standard прекрасно работает на устройстве, и в него загружен .Net 3.5. По большей части приложение работает нормально, но я наблюдаю какое-то аномальное поведение и подозреваю, что оно происходит из-за фреймворка, поскольку проблемы не могут быть воспроизведены на моей машине для разработки.

Краткое описание проблемы:

У меня это на экранной клавиатуре. Когда вы нажимаете на кнопки, в текстовом поле в верхней части экранной клавиатуры отображается то, что вы печатаете. Нажатия клавиш пользователя обрабатываются обработчиком событий нажатия кнопки мыши. Довольно просто Внутри этого обработчика я:

  1. Воспроизведение звука для нажатия клавиши.
  2. Сделай логику сдвига и заглавных букв
  3. Определить, какая клавиша была нажата (через отправителя)
  4. Обновить текст клавиатуры

Теперь, это работает довольно очевидно на моей машине для разработки. Нет проблем. В стандарте Windows Embedded у меня возникает странное отставание от клавиатуры. Обычно я нажимаю клавишу, звук воспроизводится, но нажатая клавиша не обновляется в текстовом поле в верхней части клавиатуры. Это только обновляет намного позже, случайно. (Либо через несколько секунд, либо через 30 секунд, он довольно случайный и отслеживает все нажатые клавиши)

Теперь я поместил запись в журнал в нижней части моего «обработчика нажатия мыши» и установил, что мой обработчик завершен. Текст просто не обновляется. Кроме того, я могу продолжать нажимать кнопки и звуки воспроизводятся при их нажатии, но текст не обновляется долгое время, а затем внезапно все сразу.

Другая странная вещь - это поведение не всегда присутствует. Кажется, что чем дольше работает ОС, тем больше вероятность того, что клавиатура будет зависать. На устройстве не запущены другие программы. Обычно после нового перезапуска задержка отсутствует в течение 5-20 минут. Я проверил процессор, он в значительной степени простаивает через пики отставания. Перезапуск приложения не решает начальную гипотезу лага. Операционная система должна быть перезапущена, чтобы избавиться от проблемы

Теперь, я перепробовал почти все, что мог придумать, но я думаю, что это место - моя последняя надежда.

Пожалуйста, помогите мне.

С уважением,

Ответы [ 2 ]

3 голосов
/ 08 июля 2009

Я нашел проблему.

Это было очевидно в некотором смысле. SBC имеет встроенный видеоконтроллер, который разделяет память с системой. Количество разделяемой памяти может быть установлено в BIOS. Я установил его с 32 МБ до 64 МБ, и он полностью решил мои проблемы с лагами.

Необычные обстоятельства, надеюсь, это поможет кому-то еще.

0 голосов
/ 26 июня 2009

Мое слепое предположение состоит в том, что диск недостаточно быстр для загрузки звука в обработчике сообщений - попробуйте воспроизвести звуки в другом потоке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...