質問:
Task Parallel Library に複数のタスクを同時に実行させる方法はありますか? 各コアで追加されたすべてのコンテキスト切り替えにより、プロセス全体の実行が遅くなることを意味するとしても?
バックグラウンド:
私はマルチスレッドにかなり慣れていないので、助けを借りることができます。私の最初の調査はあまり成果がありませんでしたが、正確に何を検索すればよいか分からないこともあります。おそらく、マルチスレッドの経験が豊富な人が、TPL の理解を深めたり、より良い解決策を見つけたりするのに役立つでしょう。
私たちの会社は、中央サーバーに 1 日に数回接続し、一部のファイルと MS Access データをユーザーのマシンに同期するソフトウェアをすべてのユーザーのマシンに展開することを計画しています。最初にこの概念の負荷テストを行い、Access DB が多数の同時接続にどのように耐えられるかを確認します。
私は、クライアント アプリのように動作する (ネットワーク ロケーションとの接続と同期) .NET アプリケーションを作成する任務を負っていますが、これを複数のスレッドで同時に実行します。
これは、マルチスレッドを処理し、各スレッドから戻り値を簡単に取得するための最良の (最新の) 方法のように思われるため、タスク並列ライブラリ (TPL) に慣れてきました。ただし、私が理解しているように、TPL は、可能な限り高速に実行するために各「タスク」を実行する方法を決定し、使用可能なコア間で作業を分割します。たとえば、2 コアのマシンで 30 の同期ジョブを実行するとします。TPL は各コアで 15 ずつ順番に実行されます。これは、私の負荷テストが同時に最大 2 つの接続で Access DB にヒットすることを意味します。多くの同時接続でデータベースにアクセスしたい。