The newly introduced
async keywords have a great impact on current design decisions and usage of asynchronous program flows. Now no one can search for excuses to block the GUI for more than 50 ms.
Any time the UI is non-responsive is a potential unsatisfied customer. This seems to be easier to avoid than ever, however, there are still some (probably) huge problems on the horizon. The article tries to discuss them and boils them down into some sample cases. We are specifically looking into the infamous
async void, which should only be used for event handlers, where the signature is fixed.
The article also tries to introduce some useful patterns, which can simplify code and reduce required maintenance.