フリー スレッドは、.Net スレッド プールにのみ存在する概念です。あなたが意味したのは、おそらく空き CPU リソースです!?
new Thread() を使用して独自のスレッドを宣言している場合、それに拘束されることはありません。
ただし、それらの多くを生成すると、プロセスや OS の速度が低下する可能性があります。そのため、これを処理する独自のスレッド マネージャーを作成する必要があります。
CPU 使用率は次のように確認できます。
PerformanceCounter cpuCounter = new PerformanceCounter();
cpuCounter.CategoryName = "Processor";
cpuCounter.CounterName = "% Processor Time";
cpuCounter.InstanceName = "_Total";
double cpuUsage = Convert.ToDouble(cpuCounter.NextValue());
そして、コードで変数を使用して次のことを行います。
int threadId;
if (cpuUsage > threshold) {
DoWork();
}
else {
threadId = YourThreadManager.Queue(DoWork);
}