ThreadPool.SetMaxThreads(Int32, Int32) Metodo

Definizione

Imposta il numero di richieste al pool di thread che possono essere attivate contemporaneamente. Tutte le richieste al di fuori di tale numero rimangono in coda fino a quando non diventano disponibili thread di pool di thread.

public static bool SetMaxThreads (int workerThreads, int completionPortThreads);

Parametri

workerThreads
Int32

Numero massimo di thread di lavoro nel pool di thread.

completionPortThreads
Int32

Numero massimo di thread I/O asincroni nel pool di thread.

Restituisce

true se la modifica ha esito positivo; in caso contrario, false.

Commenti

Questo metodo non è supportato quando il pool di thread di Windows è configurato per essere usato invece del pool di thread .NET. Per altre informazioni, vedere l'impostazione di configurazione del pool di thread di Windows.

Non è possibile impostare il numero massimo di thread di lavoro o thread di completamento di I/O su un numero inferiore al numero di processori nel computer. Per determinare il numero di processori presenti, recuperare il valore della Environment.ProcessorCount proprietà . Inoltre, non è possibile impostare il numero massimo di thread di lavoro o thread di completamento di I/O su un numero inferiore al numero minimo corrispondente di thread di lavoro o thread di completamento di I/O. Per determinare le dimensioni minime del pool di thread, chiamare il GetMinThreads metodo .

Se Common Language Runtime è ospitato, ad esempio da Internet Information Services (IIS) o SQL Server, l'host può limitare o impedire modifiche alle dimensioni del pool di thread.

Prestare attenzione quando si modifica il numero massimo di thread nel pool di thread. Anche se il codice può trarre vantaggio, le modifiche potrebbero avere un effetto negativo sulle librerie di codice usate.

L'impostazione delle dimensioni del pool di thread troppo grandi può causare problemi di prestazioni. Se troppi thread vengono eseguiti contemporaneamente, il sovraccarico del cambio di attività diventa un fattore significativo.

Nota

Il pool di thread può avere limiti superiori per il numero massimo di thread, ad esempio short.MaxValue, a seconda dell'implementazione. I valori degli argomenti vengono limitati al limite superiore, quindi anche quando il metodo restituisce true, il numero massimo effettivo di thread può essere inferiore a quello richiesto.

Si applica a

Prodotto Versioni
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

Vedi anche