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.