[解決済み] .net 4でasync-awaitを使用する。
質問
私は現在、C# 5 の非同期待機機能から多くの利益を得るであろうアプリケーションを作成し始めています。しかし、どのバージョンの VS と非同期ランタイムを使用すればよいのかわかりません。
OSの普及率表を見ると、あと3年ぐらいはWindows XPをサポートする必要がありそうです。.net 4.5 は Windows の新しいバージョンでのみ動作するようなので、.net 4.0 をターゲットとする必要があります。開発マシンはWindows 7を使用しているので、VSの新しいバージョンを使用することは問題ありません。
さて、私はまずこれを行うためのコンパイラを選択する必要があります。
- VS2010 と AsyncCTP
- VS2012 プレビュー (および到着後の最終版)、ターゲットを .net 4.0 に設定
- Mono (2.12 には非同期待ちがあるようです。私は IDE として MonoDevelop よりも VS を好みます/慣れています)
コード生成のバグが少ないのはどちらですか?を見てみると Jon Skeet のブログ を見ると、VS2012 Preview は CTP よりも決してコードジェネレータを使用していないようです。
そしてさらに重要なことは、どのランタイムを使用するかです。
VS2012 は、.net 4 で使用するための再配布可能な非同期ランタイムを含んでいますか?
プレビューで、AsyncCTP ランタイムを参照することによって、なんとかコードをコンパイルすることができました。しかし、CTP には奇妙なライセンス条件があるため、長期的な解決策にはなりそうもありません。
あるいは、サードパーティの実装を使用すべきでしょうか?おそらく mono にはそれがあるのではないでしょうか。
ライブラリを配布するために、私は何らかのインストーラの代わりに、単にアプリケーションと同じディレクトリにDLLを置くことを好みます。
また、私のバイナリが mono+Linux/MacOS 上で変更なく動作することが望ましいと思います。したがって、ランタイムは、mono (2.12 おそらく) が内蔵しているものと互換性があるか、または非 Windows OS 上で使用できるようにする必要があります。
どのように解決するのですか?
マイクロソフトがリリースした 非同期ターゲット パック (Microsoft.Bcl.Async) を通して ナゲット を通して、AsyncCTPの代わりとして使用することができます。
詳しくはこちらで紹介しています。 http://blogs.msdn.com/b/bclteam/archive/2013/04/17/microsoft-bcl-async-is-now-stable.aspx .
旧バージョンについては、こちらで紹介しています。 http://blogs.msdn.com/b/lucian/archive/2012/04/24/async-targeting-pack.aspx .
このパックが正式にサポートされたので、XP + 非同期をターゲットにするための最良の選択肢は Visual Studio 2012 + C#5 + 非同期ターゲット パックを使用することだろうと今は考えています。
しかし、.NET 3.5 をターゲットにする必要性を感じる場合は、(私の) .NET 3.5 用の AsyncBridge .
関連
-
[解決済み] [Solved] 1つ以上のエンティティで検証に失敗しました。詳細は'EntityValidationErrors'プロパティを参照してください [重複]。
-
[解決済み] エンティティタイプ ApplicationUser は、現在のコンテキストのモデルの一部ではありません。
-
[解決済み】SmtpException: トランスポート接続からデータを読み取れません:net_io_connectionclosed
-
[解決済み】データが存在しないのに読み込もうとする試みが無効である
-
[解決済み] forEachループでasync/awaitを使用する
-
[解決済み] async」と「await」の使い方とタイミング
-
[解決済み] 非同期Task<T>メソッドを同期的に実行するにはどうしたらいいですか?
-
[解決済み] 非同期関数+await+setTimeoutの組合せ
-
[解決済み] 複数のタスクにasync/awaitを使用する
-
[解決済み】非同期プログラミングとマルチスレッドの違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Ajax処理で「無効なJSONプリミティブ」と表示される件
-
[解決済み】WebForms UnobtrusiveValidationModeは、jqueryのScriptResourceMappingを必要とする
-
[解決済み】"The ConnectionString property has not been initialized "を修正する方法
-
[解決済み】Sequence contains no matching element(シーケンスにマッチする要素がない
-
[解決済み】値が期待した範囲に収まらない
-
[解決済み】EF 5 Enable-Migrations : アセンブリにコンテキストタイプが見つかりませんでした
-
[解決済み】MetadataException: 指定されたメタデータ・リソースをロードできない
-
[解決済み】2つ(またはそれ以上)のリストを1つに統合する(C# .NETで
-
[解決済み] [Solved] .NETでスレッドの終了を待つには?
-
[解決済み】IntPtrとは一体何なのか?