Does this require the app to have an active runloop? Will it work with a console app?