Your application cannot either create or explicitly manage
Run objects. Each
Thread object—including the application’s main thread—has an
Run object automatically created for it as needed. If you need to access the current thread’s run loop, you do so with the class method
Note that from the perspective of
Timer objects are not "input"—they are a special type, and one of the things that means is that they do not cause the run loop to return when they fire.