目次 [目次を隠す]
C# async await 非同期処理の使い方
C# 5.0から、async, await という便利な非同期処理が追加されました。
簡単な使い方は次の通りです。
実行結果は次の通りです。
[Main] Start...
[Async] HelloWorldAsync Start... [Async] 1 [Main] HelloWorldAsync Called... [Async] 2 [Async] 3 [Async] HelloWorldAsync End... [Main] End...
.NET Framework 4.0では非同期 async awaitが使えない?
ところで、Visual Studio 2010で、上記のサンプルプログラムを実行しようとしてソースコードを書いてみると以下のエラーが出ました。
型または名前空間 async が見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足しています。
????
理由が分からないので調べてみました。
Stack Overflowに以下の通り、答えが載っていました。
You need to be using a C# 5 compiler, e.g. VS2012. If you're using VS2010, you can't use async. Given the error message, I suspect that you're using the wrong compiler version.
Visual Studio 2010 (.NET Framework 4.0) は、C# 4なので、async awaitの非同期処理は使えません。
Visual Studio 2012 (.NET Framework 4.5) は、C# 5なので、async awaitの非同期処理が使えるようになります。
なんだ、そういうことか。
.NET Framework 4.0ならMicrosoft Asyncを使う
Visual Studio 2010 (.NET Framework 4.0) で、async await 非同期処理を使うには、nugetでMicrosoft Asyncというパッケージをインストールします。
詳しくは以下に記載されていました。
Using async-await on .net
コメント