皆さんawaitしてますか? 私はC#を使う機会が多いのでawaitしまくってますが、実は最近までこの構文の価値を正しく理解していませんでした。 async/awaitという糖衣構文はそれなりに複雑なことをやっていて、それを理解できる人にはそんな糖衣構文要らないのでは? と長い間考えていたのです。私自身、Taskクラスを直接取り回さないと書けない処理を書いたり、C++でTask.ContinueWithに相当する機能を作ったりしたこともあり、それなりに非同期処理については理解している自負がありました。その慢心が、この構文の意図を理解する妨げになっていたなぁという反省をこめて、この記事を書いています。 非同期処理を「手続き的に書けるようにする」のではなく「手続き的にしか書けなくする」 これが今回気付いたことのほぼ全てです。どういうことか、async/awaitを使ったコードとTask.Con