私は、しばらくしてアプリケーションの動作を停止したクライアントを支援しました (最終的には動作を再開しました)。
問題は、Task
失敗したときにThread.Sleep
(タスクで)5秒間使用されたことです。2 秒ごとに最大 800 のタスクがキューに入れられる可能性があるため、これらのジョブの多くが失敗して呼び出された場合の問題を想像できますThread.Sleep
。それらのジョブはいずれも でマークされていませんでしたTaskCreationOptions.LongRunning
。
私はタスクを書き直したので、Thread.Sleep
(またはTask.Delay
その点については)必須ではありませんでした。
TaskScheduler
ただし、そのシナリオで(デフォルト)が何をしたかに興味があります。どのように、いつスレッド数を増やしますか?