Nov 19, 2019 11:30 PM|bruce (sqlwork.com)|LINK
async operations on the same thread work, because the O/S supports async operations for network and file i/o. while the o/s is access a disk, or accessing a network, the thread is free to other work. to make a compute operation async, you need to run it
on a separate thread. if you create more threads than cpus's it will actually take more wall clock time due to the overhead of managing the threads.
the typical solution to your problem is background worker thread pool with a queue. this is so common, the framework implemented a thread pool: