Exportar (0) Imprimir
Expandir todo

ThreadPool.QueueUserWorkItem (Método) (WaitCallback)

Pone en cola un método para su ejecución. El método se ejecuta cuando hay un subproceso de grupo de subprocesos disponible.

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

public static bool QueueUserWorkItem (
	WaitCallback callBack
)
public static boolean QueueUserWorkItem (
	WaitCallback callBack
)
public static function QueueUserWorkItem (
	callBack : WaitCallback
) : boolean
No aplicable.

Parámetros

callBack

WaitCallback que representa el método que se va a ejecutar.

Valor devuelto

true si el método se pone en la cola correctamente; se produce la excepción OutOfMemoryException si no se puede poner en la cola el elemento de trabajo.

Tipo de excepciónCondición

ApplicationException

Se ha encontrado una condición de falta de memoria.

OutOfMemoryException

No se pudo poner en la cola el elemento de trabajo.

ArgumentNullException

callBack es referencia null (Nothing en Visual Basic).

Los datos requeridos por el método en cola se pueden colocar en los campos de instancia de la clase en la que se define el método, o se puede utilizar la sobrecarga de QueueUserWorkItem que acepte un objeto que contenga los datos necesarios.

NotaNota:

Los usuarios de Visual Basic pueden omitir el constructor WaitCallback y utilizar simplemente el operador AddressOf al pasar el método de devolución de llamadas a QueueUserWorkItem. Visual Basic llama automáticamente al constructor del delegado correcto.

Información de versión

En la versión 2.0 de .NET Framework, el valor de la propiedad Thread.CurrentPrincipal se difunde a los subprocesos de trabajo almacenados en la cola utilizando el método QueueUserWorkItem. En las versiones anteriores, la información principal no se difunde.

using System;
using System.Threading;
public class Example {
    public static void Main() {
        // Queue the task.
        ThreadPool.QueueUserWorkItem(new WaitCallback(ThreadProc));
        
        Console.WriteLine("Main thread does some work, then sleeps.");
        // If you comment out the Sleep, the main thread exits before
        // the thread pool task runs.  The thread pool uses background
        // threads, which do not keep the application running.  (This
        // is a simple example of a race condition.)
        Thread.Sleep(1000);

        Console.WriteLine("Main thread exits.");
    }

    // This thread procedure performs the task.
    static void ThreadProc(Object stateInfo) {
        // No state object was passed to QueueUserWorkItem, so 
        // stateInfo is null.
        Console.WriteLine("Hello from the thread pool.");
    }
}

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

public class Example
{
    public static void main(String[] args)
    {
        // Queue the task.
        ThreadPool.QueueUserWorkItem(new WaitCallback(ThreadProc));
        Console.WriteLine("Main thread does some work, then sleeps.");

        // If you comment out the Sleep, the main thread exits before
        // the thread pool task runs.  The thread pool uses background
        // threads, which do not keep the application running.  (This
        // is a simple example of a race condition.)
        Thread.Sleep(1000);
        Console.WriteLine("Main thread exits.");
    } //main

    // This thread procedure performs the task.
    static void ThreadProc(Object stateInfo)
    {
        // No state object was passed to QueueUserWorkItem, so 
        // stateInfo is null.
        Console.WriteLine("Hello from the thread pool.");
    } //ThreadProc
} //Example

Windows 98, Windows 2000 Service Pack 4, Windows CE, Windows Millennium, Windows Mobile para Pocket PC, Windows Mobile para Smartphone, 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, 1.0

.NET Compact Framework

Compatible con: 2.0, 1.0

XNA Framework

Compatible con: 1.0

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft