Wha? The UI needs to keep processing events to remain responsive. If you have a long-running (relatively speaking, say 10 milliseconds) process like uncompressing an image, you don't want your UI to lag for that long.
You could have the image decompressor look up every millisecond or so to see if there are any UI events to process, but that leads to the sort of spaghetti code that multithreading/multitasking was built to address.
not sure if you're an obj-c dev but for me the surprise was that it even needed to be mentioned since it's extremely easy and common place to do processing outside of the main thread in current apps.