web-dev-qa-db-ja.com

プロジェクトtargeting.net4.0でasyncキーワードを使用するにはどうすればよいですか

.net4.0で作成されたプロジェクトでasyncキーワードを使用したいと思います。

Nuget.org Webサイトにアクセスして「非同期」を探すと、多くの結果が得られますが、主に次のようになります。

Visual Studio非同期CTP(バージョン3、非公式)0.3.

AsyncAwaitCTP 1.0.

両者の違いはどれですか?

25
Álvaro García

Microsoft.Bcl.Async パッケージが必要です。これは適切にリリースされた、安定した非CTPパッケージです。 asyncawaitを理解するには更新されたコンパイラが必要なので、これにはVS2012も必要です。

理論的には、VS2010の古いツールを古いCTPライブラリと一緒に使用することもできますが、使用しないことを強くお勧めします。バグがあり、インストール自体が失敗します。

49
Jon Skeet

.NET4.0アプリケーション用にasyncを使用して.NET4.5プラグインを作成しましたが、驚いたことに、これは実際に機能しました。

これは、.NET 4.5がインストールされていて、.NET4ランタイムが.NET4.0と.NET4.5の両方で使用される更新されたランタイムに置き換えられたために機能したと思います。次に、プラグインにAssembly.Load(...)などを使用してリフレクションが読み込まれました。私は両方を試しましたasync/awaitおよびEnvironment.CurrentManagedThreadId(。NET 4.5プロパティ)、および両方が機能しました。

1
johv