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.

The type or namespace name 'async' could not be found
I am trying to use the following method in a WPF application .NET Framework 4 Client Profile but I receive this error: The type or namespace name 'async' cou...

 

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

Using async-await on .net 4
I'm currently starting to create an application that would profit a lot from C# 5's async-await feature. But I'm not sure which version of VS and of the async r...

 

 

 

コメント

タイトルとURLをコピーしました