Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Método ThreadPool::QueueUserWorkItem (WaitCallback^)

 

Publicado: octubre de 2016

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

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

public:
static bool QueueUserWorkItem(
	WaitCallback^ callBack
)

Parámetros

callBack
Type: System.Threading::WaitCallback^

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

Valor devuelto

Type: System::Boolean

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

Exception Condition
ArgumentNullException

El valor de callBack es null.

NotSupportedException

Se hospeda common language runtime (CLR) y el host no admite esta acción.

Puede colocar los datos requeridos por el método en cola en los campos de instancia de la clase en la que se define el método, o puede usar el QueueUserWorkItem(WaitCallback^, Object^) sobrecarga que acepta un objeto que contiene los datos necesarios.

System_CAPS_noteNota

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

En .NET Framework versión 2.0, la Thread::CurrentPrincipal valor de propiedad se propaga a los subprocesos de trabajo en una cola mediante el QueueUserWorkItem método. En versiones anteriores, no se propaga la información de entidad de seguridad.

En el ejemplo siguiente se usa el QueueUserWorkItem(WaitCallback) sobrecarga del método para poner en cola una tarea, representada por la ThreadProc método, se debe ejecutar cuando un subproceso esté disponible. No hay información de la tarea se suministra con esta sobrecarga. Por lo tanto, la información que está disponible para el ThreadProc método se limita al objeto al que pertenece el método.

using namespace System;
using namespace System::Threading;

ref class Example
{
public:

   // This thread procedure performs the task.
   static void ThreadProc(Object^ stateInfo)
   {

      // No state object was passed to QueueUserWorkItem, so stateInfo is 0.
      Console::WriteLine( "Hello from the thread pool." );
   }
};

int main()
{
   // Queue the task.
   ThreadPool::QueueUserWorkItem(gcnew WaitCallback(Example::ThreadProc));

   Console::WriteLine("Main thread does some work, then sleeps.");

   Thread::Sleep(1000);
   Console::WriteLine("Main thread exits.");
   return 0;
}
// The example displays output like the following:
//       Main thread does some work, then sleeps.
//       Hello from the thread pool.
//       Main thread exits.

.NET Framework
Disponible desde 1.1
Biblioteca de clases portable
Se admite en: plataformas portátiles de .NET
Silverlight
Disponible desde 2.0
Windows Phone Silverlight
Disponible desde 7.0
Volver al principio
Mostrar: