I was just reading an article by Stephen Cleary on best practices in async code.
I haven’t fully composed my thoughts on this topic, but this has been on my mind for a while, so I will publish it anyway, and probably update it at some point in future.
Anyway, one thing mentioned by Stephen is that mixing synchronous and asynchronous code causes problems, and so he advises on “async all the way”. While I agree that when writing your code with the new async await style, it is necessary to make far more of your code async than you first intended, I have found that a pitfall for me, at least at the beginning, was to make too much of my code async.
At least in Windows Forms, not all code should be, and even can be, asynchronous. Be very careful when writing async code, especially if you are new to it. The temptation to make everything async is one that is best not yielded to. In my arrogant opinion anyway. Use it/don’t use it…