[C#]async/awaitの使い方メモ、その1。Kimux.NetKimux.Netプログラムと趣味と。→[C#]async/awaitの使い方メモ、その1。m-kimura今後の.NET開発では必須スキルか。.NETでの非同期処理の書き方があまりにも色々ありすぎて覚えるのも大変。async/awaitを使用した非同期処理は今後重要なキーワードとなってきそうです。11.0新機能「async/await非同期メソッド」入門http://www.atmarkit.co.jp/ait/subtop/features/da/ap_masterasync_index.htmlボタンをクリックすると1秒間隔でラベルの文字が変更するプログラムを書く。フォームのボタンをクリックすると1秒間隔で10回、ラベルの文字が変更するプログラムを考えます。非同期処理を使わない例。非同期処理の効用を知るために、非同期処理を使わないで処理を書いてみます。}実行画面ボタンクリック後、処理が終わるまでコントロールはフリーズしたようになります。非同期処理をTaskクラスで実装してみます。使うことでクリック後もコントロールの操作が可能になります。async/awaitで非同期処理を書く例。async/awaitを使用して非同期処理を書いてみます。}メソッドの定義にasyncキーワードを追加しています。これは非同期メソッドであることを宣言しています。awaitは処理本体に記述する演算子で、単純に言えば非同期で行う処理を示しています。asyncが宣言されたメソッドにはawaitの処理が必要であり(awaitがない場合はコンパイル警告が発生)、基本的にはペアで覚えれば良いと思います。awaitが指定できる処理にはFuncもしくはActionを実行するTaskを指定します。上記のような書き方をすれば別スレッドからのUI操作にInvokeメソッドが必要ありません。これは非同期処理が別スレッドで動作した後に、再度そのメソッドの続きから始められるようにコンパイラがしてくれているそうです。ラムダ式の場合は次のように書きます。async/awaitの書き方はLINQやラムダ式同様、一つの糖衣構文ですね。手軽に非同期処理書けまっせということでしょう。WindowsPhoneやタブレットなどが増えて、ユーザーがUIに触れている時間が増えたということと、開発者がこれまで作成できなかった部分というのが広がり、UIをフリーズさせないようにするために非同期処理の重要性が高まったというのが背景にあるのかも。今後、.NETが提供する時間がかかる系のAPIはasyncメソッドなので、使い方覚えてね!ということのようです。コメントをキャンセルメールアドレスが公開されることはありません。*ウェブサイト上に表示された文字を入力してください。