Architecturally, I think it's best for most computation work to still be done in the cooperative thread pool. You don't want to have a lot of arbitrary extra threads providing long-term competition with the thread pool for CPUs; that should be a tool best reserved for specific goals, like reserving the high-priority main thread so that the UI can always update even when other work is happening. So a better solution to the responsiveness problem is just for long-running computations to periodically yield and allow other work to interleave.
12 Likes