async
そしてawait
キーワードは、自分自身でアプリケーションの応答性になるわけではありません。Task
オブジェクトを返すメソッドの呼び出しと処理をより便利にします。バックグラウンドスレッドを作成async
/ await
実際に使用するには、次のような使用方法と組み合わせる必要があります。
Task.Start()
-を使用して特定のタスクを開始しますTaskScheduler
。
- PLINQ-一連の操作を並行して実行し、タスクを返します。
TaskCompletionSource
-非同期タスクを処理するカスタム方法。これを使用した1つの場所は、WebBrowser
コントロールからのイベントを処理することでした。
async
Win 8 APIの多くの関数など、その他のメソッド。
言い換えれば、async
/ await
はTask-Based Asynchronous Patternの拡張です。多くのサンプルを含む多くの情報がここにあります。
BackgroundWorker
使用して1つのバックグラウンドスレッドを作成し、WinFormsのコンポーネントでイベントベースの非同期パターンを、あなたはで独自のコードを使用してこのバックグラウンドスレッドで実行される作業移入できるDoWork
イベントハンドラを。一般に、Microsoftはこのパターンの使用を推奨していません(ここのページの下部を参照)。ただし、既にこのパターンに慣れている場合は、まだ簡単なオプションかもしれません。
言及されていない別のオプションは、Reactive Extensions for .NETです。これは、アプリに応答性を追加するためのもう1つの優れたフレームワークです。