Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

ThreadStart-Delegat

 

Veröffentlicht: Oktober 2016

Stellt die Methode dar, die Ausführung auf einem Thread.

Namespace:   System.Threading
Assembly:  mscorlib (in mscorlib.dll)

[ComVisibleAttribute(true)]
public delegate void ThreadStart()

Wenn ein verwalteter Thread erstellt wird, wird die Methode, die auf dem Thread ausgeführt wird durch dargestellt eine ThreadStart Delegieren oder einen ParameterizedThreadStart -Delegat, der an die Thread Konstruktor. Der Thread beginnt nicht ausgeführt werden, bis die Thread.Start Methode wird aufgerufen. Die Ausführung beginnt in der ersten Zeile der Methode, dargestellt durch die ThreadStart oder ParameterizedThreadStart delegieren.

System_CAPS_noteHinweis

Benutzer von Visual Basic und c# können Auslassen der ThreadStart oder ParameterizedThreadStart Delegatkonstruktor beim Erstellen eines Threads. Verwenden Sie in Visual Basic die AddressOf beim Übergeben der Methode an den Operator die Thread Konstruktor, z. B. Dim t As New Thread(AddressOf ThreadProc). Geben Sie in c# einfach den Namen der Threadprozedur an. Der Compiler wählt den korrekten Delegatkonstruktor aus.

[C++]

System_CAPS_noteHinweis

In Version 2.0 von .NET Framework erstellen eine ThreadStart -Delegaten für eine statische Methode in C++ nur ein Parameter erforderlich: die Adresse der Rückrufmethode, durch den Klassennamen qualifiziert. In früheren Versionen waren zwei Parameter erforderlich beim Erstellen eines Delegaten für eine statische Methode: 0 (Null) und die Methodenadresse. Für eine Instanzmethode, alle Versionen zwei Parameter erforderlich: die Instanzvariable und die Methodenadresse.

Das folgende Codebeispiel zeigt die Syntax zum Erstellen und Verwenden einer ThreadStart mit einer Instanzenmethode und mit einer statischen Methode delegieren.

Für einen anderen einfachen Beispiel das Erstellen einer ThreadStart delegieren, finden Sie unter der Thread.Start() Überladung. Weitere Informationen zum Erstellen von Threads finden Sie unter Creating Threads and Passing Data at Start Time.

using System;
using System.Threading;

class Test
{
    static void Main() 
    {
        // To start a thread using a static thread procedure, use the
        // class name and method name when you create the ThreadStart
        // delegate. Beginning in version 2.0 of the .NET Framework,
        // it is not necessary to create a delegate explicitly. 
        // Specify the name of the method in the Thread constructor, 
        // and the compiler selects the correct delegate. For example:
        //
        // Thread newThread = new Thread(Work.DoWork);
        //
        ThreadStart threadDelegate = new ThreadStart(Work.DoWork);
        Thread newThread = new Thread(threadDelegate);
        newThread.Start();

        // To start a thread using an instance method for the thread 
        // procedure, use the instance variable and method name when 
        // you create the ThreadStart delegate. Beginning in version
        // 2.0 of the .NET Framework, the explicit delegate is not
        // required.
        //
        Work w = new Work();
        w.Data = 42;
        threadDelegate = new ThreadStart(w.DoMoreWork);
        newThread = new Thread(threadDelegate);
        newThread.Start();
    }
}

class Work 
{
    public static void DoWork() 
    {
        Console.WriteLine("Static thread procedure."); 
    }
    public int Data;
    public void DoMoreWork() 
    {
        Console.WriteLine("Instance thread procedure. Data={0}", Data); 
    }
}

/* This code example produces the following output (the order 
   of the lines might vary):
Static thread procedure.
Instance thread procedure. Data=42
 */

.NET Framework
Verfügbar seit 1.1
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0
Zurück zum Anfang
Anzeigen: