In the event of a "less long" latency event (L1 miss, etc.), thread switching will only occur if the background thread is ready to execute.
Garbage collection in Objective-C ran on a low-priority background thread, and can halt on user events, with the intention of keeping the user experience responsive.
The result is computed in a background thread encapsulated by the Future object, and the result is buffered until it is retrieved.
All WPF applications start with two threads: one for managing the UI and another background thread for handling rendering and repainting.
Microsoft recommends that the event handlers only update the properties to reflect new content for application responsiveness; the new content be generated or retrieved in a background thread.
Chakra has a separate background thread for compiling JavaScript.
When this thread encounters a high latency event (L2 cache miss, etc.) the background thread is switched to, on the second logical processor from the OS's point of view.
If the background thread is also waiting for a miss, thread switching will not occur.
As in, you can switch back and forth between apps, and apps can run in the background, create background threads, update widgets, etc.
In addition, the scene graph has been designed to allow scenes to be constructed on background threads and then attached to "live" scenes in a threadsafe manner.