2009-06-26 57 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,它完全解決了我的滯後問題。

不尋常的情況下,希望它可以幫助別人。