Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen.
Übersetzung
Original
0 von 1 fanden dies hilfreich - Dieses Thema bewerten.

Thread-Klasse

Erstellt und steuert einen Thread, legt dessen Priorität fest und ruft den Status ab.

Namespace:  System.Threading
Assembly:  mscorlib (in mscorlib.dll)
[ClassInterfaceAttribute(ClassInterfaceType.None)]
[ComVisibleAttribute(true)]
public sealed class Thread : CriticalFinalizerObject, 
	_Thread

Der Thread-Typ macht die folgenden Member verfügbar.

  Name Beschreibung
Öffentliche Methode Thread(ParameterizedThreadStart) Initialisiert eine neue Instanz der Thread-Klasse und gibt dabei einen Delegaten an, der das Übergeben eines Objekts an den Thread bei dessen Start ermöglicht.
Öffentliche Methode Unterstützt von XNA Framework bkb1k2x8.PortableClassLibrary(de-de,VS.100).gif Thread(ThreadStart) Initialisiert eine neue Instanz der Thread-Klasse.
Öffentliche Methode Thread(ParameterizedThreadStart, Int32) Initialisiert eine neue Instanz der Thread-Klasse und gibt dabei einen Delegaten, der das Übergeben eines Objekts an den Thread bei dessen Start ermöglicht, sowie eine maximale Stapelgröße für den Thread an.
Öffentliche Methode Unterstützt von XNA Framework Thread(ThreadStart, Int32) Initialisiert eine neue Instanz der Thread-Klasse und gibt die maximale Stapelgröße für den Thread an.
Zum Seitenanfang
  Name Beschreibung
Öffentliche Eigenschaft ApartmentState Veraltet. Ruft den Apartmentzustand dieses Threads ab oder legt diesen fest.
Öffentliche Eigenschaft Statischer Member CurrentContext Ruft den aktuellen Kontext ab, in dem der Thread ausgeführt wird.
Öffentliche Eigenschaft bkb1k2x8.PortableClassLibrary(de-de,VS.100).gif CurrentCulture Ruft die Kultur für den aktuellen Thread ab oder legt diese fest.
Öffentliche Eigenschaft Statischer Member CurrentPrincipal Ruft den aktuellen Principal des Threads (für rollenbasierte Sicherheit) ab oder legt diesen fest.
Öffentliche Eigenschaft Statischer Member Unterstützt von XNA Framework bkb1k2x8.PortableClassLibrary(de-de,VS.100).gif CurrentThread Ruft den derzeit ausgeführten Thread ab.
Öffentliche Eigenschaft bkb1k2x8.PortableClassLibrary(de-de,VS.100).gif CurrentUICulture Ruft die aktuelle Kultur ab, mit deren Hilfe der Ressourcen-Manager zur Laufzeit kulturabhängige Ressourcen sucht, oder legt diese fest.
Öffentliche Eigenschaft ExecutionContext Ruft ein ExecutionContext-Objekt ab, das Informationen zu den verschiedenen Kontexten des aktuellen Threads enthält.
Öffentliche Eigenschaft IsAlive Ruft einen Wert ab, der den Ausführungsstatus des aktuellen Threads angibt.
Öffentliche Eigenschaft Unterstützt von XNA Framework bkb1k2x8.PortableClassLibrary(de-de,VS.100).gif IsBackground Ruft einen Wert ab, der angibt, ob es sich bei einem Thread um einen Hintergrundthread handelt, oder legt diesen fest.
Öffentliche Eigenschaft IsThreadPoolThread Ruft einen Wert ab, der angibt, ob ein Thread zu dem verwalteten Threadpool gehört.
Öffentliche Eigenschaft Unterstützt von XNA Framework bkb1k2x8.PortableClassLibrary(de-de,VS.100).gif ManagedThreadId Ruft einen eindeutigen Bezeichner für den aktuellen verwalteten Thread ab.
Öffentliche Eigenschaft Unterstützt von XNA Framework bkb1k2x8.PortableClassLibrary(de-de,VS.100).gif Name Ruft den Namen des Threads ab oder legt diesen fest.
Öffentliche Eigenschaft Unterstützt von XNA Framework Priority Ruft einen Wert ab, der die Planungspriorität eines Threads angibt, oder legt diesen fest.
Öffentliche Eigenschaft ThreadState Ruft einen Wert ab, der die Zustände des aktuellen Threads enthält.
Zum Seitenanfang
  Name Beschreibung
Öffentliche Methode Unterstützt von XNA Framework Abort() Löst eine ThreadAbortException im Thread aus, für den der Aufruf erfolgte, um das Beenden des Threads zu beginnen. Durch den Aufruf dieser Methode wird der Thread i. d. R. beendet.
Öffentliche Methode Unterstützt von XNA Framework Abort(Object) Löst eine ThreadAbortException im Thread aus, für den der Aufruf erfolgte, um das Beenden des Threads zu beginnen. Gleichzeitig werden Ausnahmeinformationen über das Beenden des Threads bereitgestellt. Durch den Aufruf dieser Methode wird der Thread i. d. R. beendet.
Öffentliche Methode Statischer Member Unterstützt von XNA Framework AllocateDataSlot Reserviert einen unbenannten Datenslot für alle Threads. Eine höhere Leistung erzielen Sie, wenn Sie stattdessen Felder verwenden, die mit dem ThreadStaticAttribute-Attribut markiert sind.
Öffentliche Methode Statischer Member Unterstützt von XNA Framework AllocateNamedDataSlot Reserviert einen benannten Datenslot für alle Threads. Eine höhere Leistung erzielen Sie, wenn Sie stattdessen Felder verwenden, die mit dem ThreadStaticAttribute-Attribut markiert sind.
Öffentliche Methode Statischer Member BeginCriticalRegion Benachrichtigt einen Host, dass die Ausführung im Begriff ist, zu einem Codebereich überzugehen, in dem die Auswirkungen eines Threadabbruchs oder einer nicht behandelten Ausnahme andere Aufgaben in der Anwendungsdomäne gefährden könnten.
Öffentliche Methode Statischer Member BeginThreadAffinity Benachrichtigt einen Host, dass verwalteter Code im Begriff ist, Anweisungen auszuführen, die von der Identität des aktuellen physischen Betriebssystemthreads abhängen.
Öffentliche Methode DisableComObjectEagerCleanup Deaktiviert die automatische Bereinigung von Runtime Callable Wrappern (RCW) für den aktuellen Thread.
Öffentliche Methode Statischer Member EndCriticalRegion Benachrichtigt einen Host, dass die Ausführung im Begriff ist, zu einem Codebereich überzugehen, in dem die Auswirkungen eines Threadabbruchs oder einer nicht behandelten Ausnahme auf die aktuelle Aufgabe beschränkt sind.
Öffentliche Methode Statischer Member EndThreadAffinity Benachrichtigt einen Host, dass verwalteter Code die Ausführung von Anweisungen beendet hat, die von der Identität des aktuellen physischen Betriebssystemthreads abhängen.
Öffentliche Methode Unterstützt von XNA Framework bkb1k2x8.PortableClassLibrary(de-de,VS.100).gif Equals(Object) Bestimmt, ob das angegebene Object und das aktuelle Object gleich sind. (Von Object geerbt.)
Geschützte Methode Unterstützt von XNA Framework bkb1k2x8.PortableClassLibrary(de-de,VS.100).gif Finalize Gibt alle von der CriticalFinalizerObject-Klasse verwendeten Ressourcen frei. (Von CriticalFinalizerObject geerbt.)

In XNA Framework 3.0 wird dieser Member von Object.Finalize().


In   wird dieser Member von Object.Finalize().
Öffentliche Methode Statischer Member Unterstützt von XNA Framework FreeNamedDataSlot Entfernt die Zuordnung zwischen einem Namen und einem Slot für alle Threads in dem Prozess. Eine höhere Leistung erzielen Sie, wenn Sie stattdessen Felder verwenden, die mit dem ThreadStaticAttribute-Attribut markiert sind.
Öffentliche Methode GetApartmentState Gibt einen ApartmentState-Wert zurück, der den Apartmentzustand angibt.
Öffentliche Methode GetCompressedStack Veraltet. Gibt ein CompressedStack-Objekt zurück, mit dem der Stapel für den aktuellen Thread erfasst werden kann.
Öffentliche Methode Statischer Member Unterstützt von XNA Framework GetData Ruft in der aktuellen Domäne des aktuellen Threads den Wert aus dem angegebenen Slot für den aktuellen Thread ab. Eine höhere Leistung erzielen Sie, wenn Sie stattdessen Felder verwenden, die mit dem ThreadStaticAttribute-Attribut markiert sind.
Öffentliche Methode Statischer Member Unterstützt von XNA Framework GetDomain Gibt die aktuelle Domäne zurück, in der der aktuelle Thread ausgeführt wird.
Öffentliche Methode Statischer Member GetDomainID Gibt einen eindeutigen Bezeichner der Anwendungsdomäne zurück.
Öffentliche Methode Unterstützt von XNA Framework bkb1k2x8.PortableClassLibrary(de-de,VS.100).gif GetHashCode Gibt einen Hashcode für den aktuellen Thread zurück. (Überschreibt Object.GetHashCode().)

In XNA Framework 3.0 wird dieser Member von Object.GetHashCode().


In   wird dieser Member von Object.GetHashCode().
Öffentliche Methode Statischer Member Unterstützt von XNA Framework GetNamedDataSlot Sucht einen benannten Datenslot. Eine höhere Leistung erzielen Sie, wenn Sie stattdessen Felder verwenden, die mit dem ThreadStaticAttribute-Attribut markiert sind.
Öffentliche Methode Unterstützt von XNA Framework bkb1k2x8.PortableClassLibrary(de-de,VS.100).gif GetType Ruft den Type der aktuellen Instanz ab. (Von Object geerbt.)
Öffentliche Methode Interrupt Unterbricht einen Thread, der sich im WaitSleepJoin-Threadzustand befindet.
Öffentliche Methode Unterstützt von XNA Framework bkb1k2x8.PortableClassLibrary(de-de,VS.100).gif Join() Blockiert den aufrufenden Thread, bis ein Thread beendet wird, während das Standard-COM- und das SendMessage-Pumping fortgesetzt werden.
Öffentliche Methode Unterstützt von XNA Framework bkb1k2x8.PortableClassLibrary(de-de,VS.100).gif Join(Int32) Blockiert den aufrufenden Thread, bis ein Thread beendet wird oder die festgelegte Zeit verstreicht, während das Standard-COM- und das SendMessage-Pumping fortgesetzt werden.
Öffentliche Methode Join(TimeSpan) Blockiert den aufrufenden Thread, bis ein Thread beendet wird oder die festgelegte Zeit verstreicht, während das Standard-COM- und das SendMessage-Pumping fortgesetzt werden.
Geschützte Methode Unterstützt von XNA Framework bkb1k2x8.PortableClassLibrary(de-de,VS.100).gif MemberwiseClone Erstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.)
Öffentliche Methode Statischer Member Unterstützt von XNA Framework bkb1k2x8.PortableClassLibrary(de-de,VS.100).gif MemoryBarrier Synchronisiert den Speicherzugriff wie folgt: Der Prozessor, der den aktuellen Thread ausführt, kann Anweisungen nicht so neu anordnen, dass Speicherzugriffe vor dem Aufruf von MemoryBarrier nach Speicherzugriffen ausgeführt werden, die nach dem Aufruf MemoryBarrier erfolgen.
Öffentliche Methode Statischer Member ResetAbort Bricht ein Abort ab, das für den aktuellen Thread angefordert wurde.
Öffentliche Methode Resume Veraltet. Nimmt die Ausführung eines angehaltenen Threads wieder auf.
Öffentliche Methode SetApartmentState Legt den Apartmentzustand eines Threads fest, bevor dieser gestartet wird.
Öffentliche Methode SetCompressedStack Veraltet. Übernimmt einen erfassten CompressedStack für den aktuellen Thread.
Öffentliche Methode Statischer Member Unterstützt von XNA Framework SetData Legt die Daten im angegebenen Slot auf den derzeit ausgeführten Thread und für die aktuelle Domäne des betreffenden Threads fest. Eine höhere Leistung erzielen Sie, wenn Sie stattdessen Felder verwenden, die mit dem ThreadStaticAttribute-Attribut markiert sind.
Öffentliche Methode Unterstützt von XNA Framework SetProcessorAffinity Legt in .NET Compact Framework für Xbox 360 die Prozessoraffinität für einen verwalteten Thread fest. Die Prozessoraffinität bestimmt die Prozessoren, auf denen ein Thread ausgeführt wird.
Öffentliche Methode Statischer Member Unterstützt von XNA Framework bkb1k2x8.PortableClassLibrary(de-de,VS.100).gif Sleep(Int32) Hält den aktuellen Thread für einen angegebenen Zeitraum an.
Öffentliche Methode Statischer Member Sleep(TimeSpan) Blockiert den aktuellen Thread für einen angegebenen Zeitraum.
Öffentliche Methode Statischer Member SpinWait Veranlasst, dass ein Thread so oft wartet, wie vom iterations-Parameter definiert.
Öffentliche Methode Unterstützt von XNA Framework bkb1k2x8.PortableClassLibrary(de-de,VS.100).gif Start() Weist das Betriebssystem an, den Zustand der aktuellen Instanz in ThreadState.Running zu ändern.
Öffentliche Methode Start(Object) Bewirkt, dass das Betriebssystem den Zustand der aktuellen Instanz in ThreadState.Running ändert, und stellt optional ein Objekt mit Daten bereit, die von der vom Thread ausgeführten Methode verwendet werden sollen.
Öffentliche Methode Suspend Veraltet. Hält den Thread an. Hat keine Auswirkungen, wenn der Thread bereits angehalten ist.
Öffentliche Methode Unterstützt von XNA Framework bkb1k2x8.PortableClassLibrary(de-de,VS.100).gif ToString Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.)
Öffentliche Methode TrySetApartmentState Legt den Apartmentzustand eines Threads fest, bevor dieser gestartet wird.
Öffentliche Methode Statischer Member VolatileRead(Byte) Liest den Wert eines Felds. Der Wert entspricht dem letzten von einem Prozessor in dem Computer geschriebenen Wert, unabhängig von der Anzahl der Prozessoren und dem Zustand des Prozessorcaches.
Öffentliche Methode Statischer Member VolatileRead(Double) Liest den Wert eines Felds. Der Wert entspricht dem letzten von einem Prozessor in dem Computer geschriebenen Wert, unabhängig von der Anzahl der Prozessoren und dem Zustand des Prozessorcaches.
Öffentliche Methode Statischer Member VolatileRead(Int16) Liest den Wert eines Felds. Der Wert entspricht dem letzten von einem Prozessor in dem Computer geschriebenen Wert, unabhängig von der Anzahl der Prozessoren und dem Zustand des Prozessorcaches.
Öffentliche Methode Statischer Member VolatileRead(Int32) Liest den Wert eines Felds. Der Wert entspricht dem letzten von einem Prozessor in dem Computer geschriebenen Wert, unabhängig von der Anzahl der Prozessoren und dem Zustand des Prozessorcaches.
Öffentliche Methode Statischer Member VolatileRead(Int64) Liest den Wert eines Felds. Der Wert entspricht dem letzten von einem Prozessor in dem Computer geschriebenen Wert, unabhängig von der Anzahl der Prozessoren und dem Zustand des Prozessorcaches.
Öffentliche Methode Statischer Member VolatileRead(IntPtr) Liest den Wert eines Felds. Der Wert entspricht dem letzten von einem Prozessor in dem Computer geschriebenen Wert, unabhängig von der Anzahl der Prozessoren und dem Zustand des Prozessorcaches.
Öffentliche Methode Statischer Member VolatileRead(Object) Liest den Wert eines Felds. Der Wert entspricht dem letzten von einem Prozessor in dem Computer geschriebenen Wert, unabhängig von der Anzahl der Prozessoren und dem Zustand des Prozessorcaches.
Öffentliche Methode Statischer Member VolatileRead(SByte) Liest den Wert eines Felds. Der Wert entspricht dem letzten von einem Prozessor in dem Computer geschriebenen Wert, unabhängig von der Anzahl der Prozessoren und dem Zustand des Prozessorcaches.
Öffentliche Methode Statischer Member VolatileRead(Single) Liest den Wert eines Felds. Der Wert entspricht dem letzten von einem Prozessor in dem Computer geschriebenen Wert, unabhängig von der Anzahl der Prozessoren und dem Zustand des Prozessorcaches.
Öffentliche Methode Statischer Member VolatileRead(UInt16) Liest den Wert eines Felds. Der Wert entspricht dem letzten von einem Prozessor in dem Computer geschriebenen Wert, unabhängig von der Anzahl der Prozessoren und dem Zustand des Prozessorcaches.
Öffentliche Methode Statischer Member VolatileRead(UInt32) Liest den Wert eines Felds. Der Wert entspricht dem letzten von einem Prozessor in dem Computer geschriebenen Wert, unabhängig von der Anzahl der Prozessoren und dem Zustand des Prozessorcaches.
Öffentliche Methode Statischer Member VolatileRead(UInt64) Liest den Wert eines Felds. Der Wert entspricht dem letzten von einem Prozessor in dem Computer geschriebenen Wert, unabhängig von der Anzahl der Prozessoren und dem Zustand des Prozessorcaches.
Öffentliche Methode Statischer Member VolatileRead(UIntPtr) Liest den Wert eines Felds. Der Wert entspricht dem letzten von einem Prozessor in dem Computer geschriebenen Wert, unabhängig von der Anzahl der Prozessoren und dem Zustand des Prozessorcaches.
Öffentliche Methode Statischer Member VolatileWrite(Byte, Byte) Schreibt einen Wert sofort in ein Feld, sodass der Wert für alle Prozessoren des Computers sichtbar ist.
Öffentliche Methode Statischer Member VolatileWrite(Double, Double) Schreibt einen Wert sofort in ein Feld, sodass der Wert für alle Prozessoren des Computers sichtbar ist.
Öffentliche Methode Statischer Member VolatileWrite(Int16, Int16) Schreibt einen Wert sofort in ein Feld, sodass der Wert für alle Prozessoren des Computers sichtbar ist.
Öffentliche Methode Statischer Member VolatileWrite(Int32, Int32) Schreibt einen Wert sofort in ein Feld, sodass der Wert für alle Prozessoren des Computers sichtbar ist.
Öffentliche Methode Statischer Member VolatileWrite(Int64, Int64) Schreibt einen Wert sofort in ein Feld, sodass der Wert für alle Prozessoren des Computers sichtbar ist.
Öffentliche Methode Statischer Member VolatileWrite(IntPtr, IntPtr) Schreibt einen Wert sofort in ein Feld, sodass der Wert für alle Prozessoren des Computers sichtbar ist.
Öffentliche Methode Statischer Member VolatileWrite(Object, Object) Schreibt einen Wert sofort in ein Feld, sodass der Wert für alle Prozessoren des Computers sichtbar ist.
Öffentliche Methode Statischer Member VolatileWrite(SByte, SByte) Schreibt einen Wert sofort in ein Feld, sodass der Wert für alle Prozessoren des Computers sichtbar ist.
Öffentliche Methode Statischer Member VolatileWrite(Single, Single) Schreibt einen Wert sofort in ein Feld, sodass der Wert für alle Prozessoren des Computers sichtbar ist.
Öffentliche Methode Statischer Member VolatileWrite(UInt16, UInt16) Schreibt einen Wert sofort in ein Feld, sodass der Wert für alle Prozessoren des Computers sichtbar ist.
Öffentliche Methode Statischer Member VolatileWrite(UInt32, UInt32) Schreibt einen Wert sofort in ein Feld, sodass der Wert für alle Prozessoren des Computers sichtbar ist.
Öffentliche Methode Statischer Member VolatileWrite(UInt64, UInt64) Schreibt einen Wert sofort in ein Feld, sodass der Wert für alle Prozessoren des Computers sichtbar ist.
Öffentliche Methode Statischer Member VolatileWrite(UIntPtr, UIntPtr) Schreibt einen Wert sofort in ein Feld, sodass der Wert für alle Prozessoren des Computers sichtbar ist.
Öffentliche Methode Statischer Member Yield Bewirkt, dass der aufrufende Thread die Ausführung an einen anderen Thread übergibt, der auf dem aktuellen Prozessor ausgeführt werden kann. Das Betriebssystem wählt den Thread für die Übergabe aus.
Zum Seitenanfang
  Name Beschreibung
Explizite Schnittstellenimplementierung Private Methode _Thread.GetIDsOfNames Ordnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu.
Explizite Schnittstellenimplementierung Private Methode _Thread.GetTypeInfo Ruft die Typinformationen für ein Objekt ab, die dann zum Abrufen der Typinformationen für eine Schnittstelle verwendet werden können.
Explizite Schnittstellenimplementierung Private Methode _Thread.GetTypeInfoCount Ruft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1).
Explizite Schnittstellenimplementierung Private Methode _Thread.Invoke Stellt den Zugriff auf von einem Objekt verfügbar gemachte Eigenschaften und Methoden bereit.
Zum Seitenanfang

Ein Prozess kann einen oder mehrere Threads erstellen, die einen Teil des ihm zugeordneten Programmcodes ausführen. Geben Sie mithilfe eines ThreadStart-Delegaten oder des ParameterizedThreadStart-Delegaten den von einem Thread ausgeführten Programmcode an. Mithilfe des ParameterizedThreadStart-Delegaten können Sie Daten an die Threadprozedur übergeben.

Für die Dauer seines Bestehens befindet sich ein Thread immer in einem oder mehreren der Zustände, die von ThreadState definiert sind. Eine Planungsprioritätsebene kann entsprechend der Definition von ThreadPriority für einen Thread angefordert werden. Diese wird jedoch nicht unbedingt vom Betriebssystem eingehalten.

GetHashCode stellt Identifikation für verwaltete Threads bereit. Diese Threadidentifikation gerät während der gesamten Lebensdauer des betreffenden Threads niemals mit dem Wert eines anderen Threads in Konflikt, unabhängig von der Anwendungsdomäne, aus der dieser Wert abgerufen wurde.

Hinweis Hinweis

Die ThreadId eines Betriebssystems hat keine festgelegte Beziehung zu einem verwalteten Thread, da ein nicht verwalteter Host die Beziehung zwischen verwalteten und nicht verwalteten Threads steuern kann. Insbesondere kann ein hoch entwickelter Host unter Verwendung der CLR Hosting API die Ablaufplanung vieler verwalteter Threads durch denselben Betriebssystemthread ausführen oder einen verwalteten Thread zwischen verschiedenen Betriebssystemthreads verschieben.

Es ist nicht erforderlich, einen Verweis auf ein Thread-Objekt beizubehalten, nachdem Sie den Thread gestartet haben. Der Thread wird so lange ausgeführt, bis die Threadprozedur abgeschlossen wurde.

Wichtiger Hinweis Wichtig

Ab .NET Framework, Version 4 ist das Verhalten einiger Theadkonstruktoren geändert: Nur voll vertrauenswürdiger Code die maximale Stapelgröße auf einen Wert festlegen, der größer als die Standardstapelgröße (1 Megabyte) ist. Wenn ein größerer Wert angegeben wird und Code mit teilweiser Vertrauenswürdigkeit ausgeführt wird, wird der größere Wert ignoriert, und die Standardstapelgröße wird verwendet. Es wird keine Ausnahme ausgelöst. In Code auf beliebiger Vertrauensebene kann die maximale Stapelgröße auf einen Wert festgelegt werden, der kleiner als die Standardstapelgröße ist.

Das folgende Beispiel veranschaulicht einfache Threadfunktionen.


using System;
using System.Threading;

// Simple threading scenario:  Start a static method running
// on a second thread.
public class ThreadExample {
    // The ThreadProc method is called when the thread starts.
    // It loops ten times, writing to the console and yielding 
    // the rest of its time slice each time, and then ends.
    public static void ThreadProc() {
        for (int i = 0; i < 10; i++) {
            Console.WriteLine("ThreadProc: {0}", i);
            // Yield the rest of the time slice.
            Thread.Sleep(0);
        }
    }

    public static void Main() {
        Console.WriteLine("Main thread: Start a second thread.");
        // The constructor for the Thread class requires a ThreadStart 
        // delegate that represents the method to be executed on the 
        // thread.  C# simplifies the creation of this delegate.
        Thread t = new Thread(new ThreadStart(ThreadProc));

        // Start ThreadProc.  Note that on a uniprocessor, the new 
        // thread does not get any processor time until the main thread 
        // is preempted or yields.  Uncomment the Thread.Sleep that 
        // follows t.Start() to see the difference.
        t.Start();
        //Thread.Sleep(0);

        for (int i = 0; i < 4; i++) {
            Console.WriteLine("Main thread: Do some work.");
            Thread.Sleep(0);
        }

        Console.WriteLine("Main thread: Call Join(), to wait until ThreadProc ends.");
        t.Join();
        Console.WriteLine("Main thread: ThreadProc.Join has returned.  Press Enter to end program.");
        Console.ReadLine();
    }
}


Durch diesen Code wird eine mit folgendem Beispiel vergleichbare Ausgabe generiert:

 [VB, C++, C#]
 Main thread: Start a second thread.
 Main thread: Do some work.
 ThreadProc: 0
 Main thread: Do some work.
 ThreadProc: 1
 Main thread: Do some work.
 ThreadProc: 2
 Main thread: Do some work.
 ThreadProc: 3
 Main thread: Call Join(), to wait until ThreadProc ends.
 ThreadProc: 4
 ThreadProc: 5
 ThreadProc: 6
 ThreadProc: 7
 ThreadProc: 8
 ThreadProc: 9
 Main thread: ThreadProc.Join has returned.  Press Enter to end program.

.NET Framework

Unterstützt in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Unterstützt in:

Windows 7, Windows Vista SP1 oder höher, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core wird nicht unterstützt), Windows Server 2008 R2 (Server Core wird mit SP1 oder höher unterstützt), Windows Server 2003 SP2

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Dieser Typ ist threadsicher.

Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
Community-Inhalt Hinzufügen
Anmerkungen FAQ