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 Thread.Start (Object)

 

Publicado: octubre de 2016

Hace que el sistema operativo cambie el estado de la instancia actual a ThreadState.Running; también puede proporcionar un objeto que contiene datos para que los use el método ejecutado por el subproceso.

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

[HostProtectionAttribute(SecurityAction.LinkDemand, Synchronization = true, 
	ExternalThreading = true)]
public void Start(
	object parameter
)

Parámetros

parameter
Type: System.Object

Objeto que contiene datos para que los use el método ejecutado por el subproceso.

Exception Condition
ThreadStateException

Ya se inició el subproceso.

OutOfMemoryException

No hay memoria suficiente iniciar este subproceso.

InvalidOperationException

Este subproceso se creó mediante un delegado ThreadStart en lugar de un delegado ParameterizedThreadStart.

Once a thread is in the F:System.Threading.ThreadState.Running state, the operating system can schedule it for execution. The thread begins executing at the first line of the method represented by the T:System.Threading.ThreadStart or T:System.Threading.ParameterizedThreadStart delegate supplied to the thread constructor. Note that the call to M:System.Threading.Thread.Start(System.Object) does not block the calling thread.

Once the thread terminates, it cannot be restarted with another call to Start.

This overload and the T:System.Threading.ParameterizedThreadStart delegate make it easy to pass data to a thread procedure, but the technique is not type safe because any object can be passed to this overload. A more robust way to pass data to a thread procedure is to put both the thread procedure and the data fields into a worker object. For more information, see Creating Threads.

The following example creates a T:System.Threading.ParameterizedThreadStart delegate with a static method and an instance method.

using System;
using System.Threading;

public class Work
{
    public static void Main()
    {
        // Start a thread that calls a parameterized static method.
        Thread newThread = new Thread(Work.DoWork);
        newThread.Start(42);

        // Start a thread that calls a parameterized instance method.
        Work w = new Work();
        newThread = new Thread(w.DoMoreWork);
        newThread.Start("The answer.");
    }

    public static void DoWork(object data)
    {
        Console.WriteLine("Static thread procedure. Data='{0}'",
            data);
    }

    public void DoMoreWork(object data)
    {
        Console.WriteLine("Instance thread procedure. Data='{0}'",
            data);
    }
}
// This example displays output like the following:
//       Static thread procedure. Data='42'
//       Instance thread procedure. Data='The answer.'

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