This was exactly my thoughts ... I'm still trying to figure out why they would use multi-threading though.
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.