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

ParameterizedThreadStart (Delegado)

 

Publicada: julio de 2016

Representa el método que se ejecuta en un Thread.

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

[<ComVisibleAttribute(false)>]
type ParameterizedThreadStart = 
    delegate of 
        obj:Object -> unit

Parámetros

obj
Type: System.Object

Objeto que contiene los datos para el procedimiento de subproceso.

Cuando se crea un subproceso administrado, el método que se ejecuta en el subproceso se representa mediante:

  • Un ThreadStart que se pasa al delegado de la Thread.Thread(ThreadStart) constructor. Cualquier método que no tiene parámetros y devuelve void en C# o es una Sub procedimiento en Visual Basic puede representar el delegado.

  • Un ParameterizedThreadStart que se pasa al delegado de la Thread.Thread(ParameterizedThreadStart, Int32) constructor. Cualquier método que tiene un único parámetro de tipo Object y que devuelve void en C# o es un procedimiento Sub en Visual Basic puede representar el delegado.

El subproceso no comienza a ejecutarse hasta que el Thread.Start se llama al método. El ThreadStart o ParameterizedThreadStart se invoca el delegado en el subproceso y comienza la ejecución en la primera línea del método representado por el delegado. En el caso de los ParameterizedThreadStart delegar, el objeto que se pasa a la Start(Object) método se pasa al delegado.

System_CAPS_noteNota

Los usuarios de Visual Basic y C# pueden omitir el ThreadStart o ParameterizedThreadStart delegado constructor al crear un subproceso. En Visual Basic, utilice el AddressOf operador al pasar el método para el Thread constructor; por ejemplo, Dim t As New Thread(AddressOf ThreadProc). En C#, simplemente especifique el nombre del procedimiento de subproceso. El compilador selecciona el constructor del delegado correcto.

System_CAPS_noteNota

Cuando se crea un ParameterizedThreadStart delegado para un método de instancia en C++, el primer parámetro del constructor es la variable de instancia. Para un método estático, el primer parámetro del constructor es cero. Para un método estático, el constructor del delegado sólo requiere un parámetro: la dirección del método de devolución de llamada, calificada por el nombre de clase.

El ParameterizedThreadStart delegar y Thread.Start(Object) sobrecarga del método que sean fáciles de pasar datos a un procedimiento de subproceso, pero esta técnica no es seguro porque se puede pasar cualquier objeto a Thread.Start(Object). Una forma más sólida para pasar datos a un procedimiento de subproceso es poner el procedimiento de subproceso y los campos de datos en un objeto de trabajo. Para obtener más información, consulta Creating Threads and Passing Data at Start Time.

El ParameterizedThreadStart delegado es compatible con un solo parámetro. Puede pasar varios elementos de datos a la ParameterizedThreadStart realizando ese parámetro uno de los siguientes:

El siguiente ejemplo de código utiliza un ParameterizedThreadStart delegado con para ejecutar un método estático y un método de instancia. La primera ParameterizedThreadStart delegado representado por estático DoWork (método) y el segundo es representado por la instancia DoMoreWork (método). Coincide con ambos métodos el ParameterizedThreadStart firma de delegado; es decir, tienen un único parámetro de tipo Object y no devuelve ningún valor.

System_CAPS_noteNota

Deducen de los compiladores de Visual Basic y C# la ParameterizedThreadStart delegar de las firmas de los DoWork y DoMoreWork métodos y la llamada al constructor correcto. Por lo tanto, no hay ninguna llamada de constructor explícito en el código.

No hay ningún ejemplo de código disponible o este idioma no es compatible.

Universal Windows Platform
Disponible desde 10
.NET Framework
Disponible desde 2.0
Silverlight
Disponible desde 2.0
Windows Phone Silverlight
Disponible desde 7.0
Volver al principio
Mostrar: