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