It appears that CE Keyboard events consume a lot of real-time! I can starve my application threads by quickly tapping keyboard keys -- even ones that aren't trapped by my app.
This is a problem for us because we had hoped to piggyback a knob input device on the ps2 keyboard interface, and, when turned, it generates keyboard events quickly. Unfortunately, since it takes so long for CE to service these events (at a high priority) my threads can't run till all the keyboard events get serviced. A half second knob twist results in a delay of a second or so before my app gets to run again.
Typing a couple of unrelated keys fairly quickly (10 times a second) halts my threads. I really don't want to move my thread priorities up, cause they aren't I/O related, and will contend for I/O time.
Any suggestions (besides "don't use the PS/2 interface)?
The keyboard driver uses the standard thread priority. Try increasing your thread priorities a couple levels to give them more processing time than the keyboard thread.
Thanks for the suggestion -- I already tried this. It just delays the inevitable. The events themselves consume some large amount of real-time, and changing priorities doesn't change this, it just makes the app less responsive to the KB events.
Any other thoughts? Or details on the KB event architecture on CE / Graphics Master?