C#のasync await非同期処理の使い方、.NET Framework 4.0 では使えない?

スポンサーリンク
スポンサーリンク

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.

https://stackoverflow.com/questions/21108585/the-type-or-namespace-name-async-could-not-be-found

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

https://stackoverflow.com/questions/9110472/using-async-await-on-net-4

スポンサーリンク
スポンサーリンク
スポンサーリンク

フォローする