【问题标题】:WPF on Windows Embedded Framework questionWindows Embedded Framework 上的 WPF 问题
【发布时间】:2011-08-04 10:29:43
【问题描述】:

我目前正在为单板 AMD Geode 计算机(触摸屏)开发 WPF 应用程序。

Windows Embedded Standard 在设备上安装良好,并且已加载 .Net 3.5。该应用程序在大多数情况下运行良好,但我遇到了一些异常行为,我怀疑它来自框架,因为这些问题无法在我的开发机器上重现。

问题的简短描述:

我在屏幕键盘上有这个。当您触摸按钮时,它会显示您在屏幕键盘顶部的此文本框中输入的内容。用户按键由按钮上的鼠标按下事件处理程序处理。很简单。在这个处理程序中我:

  1. 播放按键声音。
  2. 做一些移位和大写逻辑
  3. 确定按下了什么键(通过发件人)
  4. 更新键盘文本

现在,这在我的开发机器上非常有效。没问题。在 Windows Embedded 标准上,我的键盘出现了这种奇怪的延迟。基本上我按下一个键,声音会播放,但您按下的键不会在键盘顶部的文本框中更新。它只会在很久以后随机更新。 (无论是几秒后还是 30 秒后,它都非常随机,并且会跟踪我按下的所有键)

现在,我在“鼠标按下处理程序”的底部放置了一个日志条目,并确定我的处理程序确实完成了。文本根本没有更新。另外,我可以继续点击按钮,并且在我点击它们时会播放声音,但是文本很长时间没有更新,然后突然全部更新。

另一个奇怪的事情是这种行为并不总是存在。似乎操作系统启动的时间越长,键盘就越有可能滞后。设备上没有运行其他程序。通常在重新启动后大约 5-20 分钟不会出现延迟。我检查了 CPU,它在延迟峰值期间几乎处于空闲状态。应用程序重新启动并不能解决初始滞后假设。必须重新启动操作系统才能解决问题

现在,我已经尝试了几乎所有我能想到的东西,但我认为这个地方是我最后的希望。

请帮帮我。

问候,

【问题讨论】:

    标签: wpf embedded


    【解决方案1】:

    我发现了问题。

    从某种意义上说是显而易见的。 SBC 有一个与系统共享内存的板载视频控制器。可以在bios中设置共享的内存量。我将它从 32Mb 设置为 64Mb,它完全解决了我的延迟问题。

    不寻常的情况,希望它可以帮助别人。

    【讨论】:

      【解决方案2】:

      我的盲目猜测是磁盘不够快,无法在消息处理程序中加载声音 - 尝试在另一个线程上播放声音。

      【讨论】:

      • 很遗憾没有。我有事件完全减少处理程序基本上到一个:{ tbDisplay.text+="a"; } 没有声音,不是计算,只是当你按下一个按钮时,文本应该附加一个“a”。仍然滞后。虽然它落后于操作系统的其余部分是响应式的,但只是我的应用程序不会长时间随机显示这些附加字符。
      • 你检查过 20 分钟后的内存使用情况吗?
      猜你喜欢
      • 1970-01-01
      • 2018-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多