I have a strange RhinoApp.KeyboardEvent recurtion.
A kind of resonance that appears randomly.
Sometimes there are two calls and sometimes it takes more than a minute for the calls to end.
On Windows, setting a keyboard hook uses the standard Windows hooking mechanism, which is SetWindowsHookEx with the WH_KEYBOARD flag. So it should be plenty stable, at least for how we define stable.
Keep in mind when writing UI that other things (e.g. windows, controls, etc.) will also want keyboard control. So it’s best to use Rhino keyboard hooking sparingly and only when necessary.