2009-06-26 58 views
3

我目前正在为单板AMD Geode计算机(触摸屏)开发WPF应用程序。Windows Embedded Framework上的WPF问题

Windows Embedded Standard在设备上安装正常,并且已加载.Net 3.5。该应用程序运行良好的大部分,但我得到一些异常的行为,我怀疑它来自框架,因为问题不能在我的开发机器上重现。

问题的简短说明:

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

  1. 为按键播放声音。
  2. 做一些转变,帽逻辑
  3. 确定按下哪个键(通过发送器)
  4. 更新键盘文本

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

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

另一个奇怪的是这种行为并不总是存在。看起来操作系统时间越长,键盘滞后的可能性就越大。设备上没有其他程序正在运行。通常在重新开始后,滞后时间不会持续约5-20分钟。我检查了CPU,通过滞后尖峰,它几乎空闲。应用程序重新启动并不能解决初始滞后假设。必须重新启动操作系统才能解决问题

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

请帮帮我。

问候,

回答

0

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

+0

不幸的不是。 我有事件完全减少了处理程序,基本上为: tbDisplay.text + =“a”; } 没有声音,没有计算只是当你按下按钮的文本应该附加一个“a”。仍然滞后。虽然它滞后于操作系统的其他部分,但只是我的应用程序不会随机显示长时间附加的字符。 – sigsegv 2009-06-27 11:42:39

3

我发现了这个问题。

这在某种意义上是显而易见的。 SBC具有与系统共享内存的板上视频控制器。共享内存的数量可以在BIOS中设置。我将它设置为32Mb到64Mb,它完全解决了我的滞后问题。

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