.NET 4.5 を使用して WPF でアプリケーションを作成しています。このアプリケーションを使用すると、ユーザーは複数のファイルを選択してインポートできます。これが発生すると、アプリケーションはテキスト ファイルを解析し、データをデータベースに保存します。ファイルは非常に大きくなる可能性があるため、UI の応答性を維持し、これが発生している間もユーザーが他のことを実行できるようにしたいと考えています。
私は非同期プログラミングが初めてで、最善のアプローチが何であるかを知りたいですか? マイクロソフトの記事によると...
「async キーワードと await キーワードによって、追加のスレッドが作成されることはありません。非同期メソッドは独自のスレッドで実行されないため、非同期メソッドはマルチスレッドを必要としません。メソッドは現在の同期コンテキストで実行され、スレッドで時間を使用します。メソッドがアクティブな場合のみ。Task.Run を使用して、CPU バウンドの作業をバックグラウンド スレッドに移動できますが、バックグラウンド スレッドは、結果が利用可能になるのを待っているだけのプロセスには役立ちません。」
複数のファイルを処理しているので、ファイルごとに「Task.Run」を使用したほうがよいでしょうか。ファイルは別々のスレッドで実行されるからですか? そうでない場合、async/await を使用して同じスレッドですべてを実行する利点は何ですか?
他の UI 操作 (プログレス バー - プログレス レポートを除く) は、これらのファイルの処理がいつ完了したかを実際に気にしないことに注意してください。あなたの考えは何ですか?