In .NET when you make an async call I understand that this call is resolved in a seperate thread thus not blocking the original thread where the call was made.
How does the mechanics behind this work. Is a new thread spawned on every async call or is there a shared async thread that handles these operations? If it is a shared thread, do several async calls block eachother while execution. And if individual threads is spawned, won't the application experience serious performance issues due to having too many threads running concurrently if many async calls is made within the same time frame.