Use asynchronous code, but avoid blocking calls

Asynchronous programming is a recommended best practice. However, always avoid referencing the Result property, or calling the Wait method on a Task instance. This approach can lead to thread exhaustion.