Updated to allow a program to force all user Inputs onto main program
thread, this can be used to avoid concurrency problems