Domandona:

In un progetto faccio abbondante uso del multithread.

Visto che ogni nuovo thread fa delle operazioni su alcuni file e sul db anche abbstanza pesanti ho dovuto inserire un limitatore e mi sono inventato un lavoro del genere:


codice:
While Process.GetCurrentProcess.Threads.Count > 100
           Debug.Print("THREADCOUNT: " & Process.GetCurrentProcess.Threads.Count)
End While

ReDim Preserve Th(UBound(Th) + 1)
Th(UBound(Th)) = New Threading.Thread(AddressOf ExecuteThread)
Th(UBound(Th)).Start(S)
Il tutto funziona decentemente...ora però vorrei un attimino ottimizzarlo inserendo nel ciclo while un Thread.CurrentThread.Sleep(100)....giusto per evitare sprechi inutili di cpu.

La domanda però è questa: il thread.sleep mi freeza solo il thread corrente o anche tutti gli altri thread che ho aperto?

p.s.
Se per caso avete soluzioni migliori per impostare il massimo numero di thread che girano contemporaneamente fatevi avanti.