編集済み:最初に2つの質問を述べ、1つを自分でテストして、答えを得ました。
フォルダセット内のファイルを調べるスレッド化されたリーダー/ライターを作成しています。これは5分ごと、またはユーザーが指定した場合はそれ以下で行われます。
私の現在の問題は、スレッドが少し貪欲にファイルを見るということです。スレッドがCPUの最大30%(または、ユーザーがより速く/より遅くしたい場合は、ユーザーが指定した量)を使用するように制限したいと思います。その理由は、これは常にオンになっているはずのプログラムであり、インターネットの閲覧や他のプログラムの使用を同時に妨げたくないからです。私は個人的に、CPUの100%を使用するスレッドプログラムは、優先度が低く設定されている場合でも、他のプログラムと一緒にねじ山になっていることに気付く傾向があり、これを回避しようとしています。
PerformanceCounterを使用してCPU使用率を確認し、できればプログラムを特定し、(CPU全体、または具体的にはプログラムが検出した)パフォーマンスがピークに達した場合にスリープサイクルを追加することを考えていました。「笑、なぜわざわざ?」以外のスレッドのCPU使用量を制限するためのドキュメントは見つかりませんでしたが、理由はありません(これは完全に問題ありません。ほとんどの人はスレッドをできるだけ早く実行したいと考えています。 .Netまたは別のC#ライブラリに固有のこれを行う方法)。
優先度を低く設定したり、PerformanceCounter /他のCPUモニターを使用してオーバーヘッドを追加したりする以外の方法を知っている人はいますか?ありがとう。