Making https://en.wikipedia.org/wiki/Blocking_(computing)[blocking calls] to `async` methods transforms the code into a synchronous operation. Doing so inside an Azure Function can lead to thread pool exhaustion.
Thread pool exhaustion refers to a situation where all available threads in a thread pool are occupied, and new tasks or work items cannot be scheduled for execution due to the lack of available threads. This can lead to delayed execution and degraded performance.
* Microsoft Learn - https://learn.microsoft.com/en-us/archive/msdn-magazine/2013/march/async-await-best-practices-in-asynchronous-programming[Async/Await - Best Practices in Asynchronous Programming]
* Microsoft Learn - https://learn.microsoft.com/en-us/azure/azure-functions/performance-reliability#use-async-code-but-avoid-blocking-calls[Improve the performance and reliability of Azure Functions - Scalability best practices]
* Github - https://github.com/davidfowl/AspNetCoreDiagnosticScenarios/blob/master/AsyncGuidance.md[Async Guidance by David Fowler]
* S4462 - Calls to "async" methods should not be blocking (a more general version of this rule)