SetMinThreads (Método)

ThreadPool.SetMinThreads (Método)

Establece el número de subprocesos inactivos que mantiene el grupo de subprocesos en previsión de nuevas solicitudes.

Espacio de nombres: System.Threading
Ensamblado: mscorlib (en mscorlib.dll)

public static bool SetMinThreads (
	int workerThreads,
	int completionPortThreads
)
public static boolean SetMinThreads (
	int workerThreads, 
	int completionPortThreads
)
public static function SetMinThreads (
	workerThreads : int, 
	completionPortThreads : int
) : boolean
No aplicable.

Parámetros

workerThreads

Número mínimo de subprocesos de trabajo inactivos que ha de mantener el grupo de subprocesos.

completionPortThreads

Número mínimo de subprocesos de E/S asincrónicos inactivos que ha de mantener el grupo de subprocesos.

Valor devuelto

Es true si el cambio es correcto; en caso contrario, es false.

El grupo de subprocesos mantiene los subprocesos inactivos para reducir el tiempo necesario para satisfacer las solicitudes de subprocesos del grupo de subprocesos. Para los subprocesos de trabajo y los subprocesos de E/S asincrónica se mantienen mínimos independientes. Los subprocesos inactivos que superan los mínimos se finalizan para ahorrar recursos del sistema. El mantenimiento de los subprocesos inactivos es una tarea en segundo plano.

NotaNota:

GetMinThreads y SetMinThreads recuperan y establecen el número total de subprocesos inactivos mantenidos por el grupo de subprocesos, con independencia del número de procesadores del equipo.

Si especifica un número negativo o un número superior al número máximo de subprocesos activos del grupo de subprocesos (obtenido utilizando GetMaxThreads), SetMinThreads devuelve false y no cambia ninguno de los valores mínimos.

Nota de precauciónPrecaución:

La reducción del número de subprocesos inactivos a un valor inferior al número de procesadores puede afectar negativamente al rendimiento.

Cuando todos los subprocesos del grupo de subprocesos se han asignado a tareas, dicho grupo no empieza a crear nuevos subprocesos inactivos inmediatamente. Para evitar la asignación innecesaria de espacio de pila para los subprocesos, crea nuevos subprocesos inactivos a intervalos. Actualmente el intervalo es de medio segundo, aunque puede cambiar en versiones futuras de .NET Framework.

Si una aplicación está sujeta a ráfagas de actividad en las que se colocan en la cola un gran número de tareas del grupo de subprocesos, utilice el método SetMinThreads para aumentar el número mínimo de subprocesos inactivos. De lo contrario, el retraso integrado al crear nuevos subprocesos inactivos podría crear un cuello de botella. Un pequeño aumento del número de subprocesos inactivos puede producir una mejora significativa del rendimiento.

NotaNota:

Aumentar innecesariamente el número de subprocesos inactivos también puede producir problemas de rendimiento. Debe asignarse espacio de pila para cada subproceso. Si se inician demasiadas tareas al mismo tiempo, puede parecer que todas se realizan con lentitud. Encontrar el equilibrio correcto es un problema de ajuste del rendimiento.

En el ejemplo siguiente se establece el número mínimo de subprocesos de trabajo inactivos en cuatro y se conserva el valor original del número mínimo de subprocesos de finalización de E/S asincrónica inactivos.

using System;
using System.Threading;

public class Test
{
    public static void Main()
    {
        int minWorker, minIOC;
        // Get the current settings.
        ThreadPool.GetMinThreads(out minWorker, out minIOC);
        // Change the minimum number of worker threads to four, but
        // keep the old setting for minimum asynchronous I/O 
        // completion threads.
        if (ThreadPool.SetMinThreads(4, minIOC))
        {
            // The minimum number of threads was set successfully.
        }
        else
        {
            // The minimum number of threads was not changed.
        }
    }
}

import System.*;
import System.Threading.*;
import System.Threading.Thread;

public class Test
{
    public static void main(String[] args)
    {
        int minWorker = 0;
        int minIOC = 0;

        // Get the current settings.
        ThreadPool.GetMinThreads(minWorker, minIOC);

        // Change the minimum number of worker threads to four, but
        // keep the old setting for minimum asynchronous I/O 
        // completion threads.
        if (ThreadPool.SetMinThreads(4, minIOC)) {
            // The minimum number of threads was set successfully.
        }
        else {
            // The minimum number of threads was not changed.
        }
    } //main
} //Test

Windows 98, Windows 2000 Service Pack 4, Windows Millennium, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter

Microsoft .NET Framework 3.0 es compatible con Windows Vista, Microsoft Windows XP SP2 y Windows Server 2003 SP1.

.NET Framework

Compatible con: 3.0, 2.0, 1.1
Mostrar:
© 2016 Microsoft