Correct way to use RhinoCore.Run()?

The Rhino main loop needs to run in the main thread. Is it possible to pause the main loop and do other work, or to manually control when the loop is run?

Interestingly I can still interact with the created Rhino window (without calling Run), but Run needs to be called for certain inputs (e.g. pressing delete on the keyboard to delete an item).