Exportieren (0) Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

Thread.ApartmentState-Eigenschaft

Hinweis: Diese API ist mittlerweile veraltet. Die nicht veraltete Alternative ist GetApartmentState. Die nicht veraltete Alternative ist SetApartmentState.

Ruft den Apartmentzustand dieses Threads ab oder legt diesen fest.

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

[ObsoleteAttribute("The ApartmentState property has been deprecated.  Use GetApartmentState, SetApartmentState or TrySetApartmentState instead.", 
	false)]
public ApartmentState ApartmentState { get; set; }

Eigenschaftswert

Typ: System.Threading.ApartmentState
Einer der ApartmentState-Werte. Der Anfangswert ist Unknown.

AusnahmeBedingung
ArgumentException

Es wird versucht, diese Eigenschaft auf einen Zustand festzulegen, der kein gültiger Apartmentzustand ist, d. h. der nicht der Zustand Singlethreaded Apartment (STA) oder Multithreaded Apartment (MTA) ist.

In .NET Framework, Version 1.0 und 1.1, kennzeichnet die ApartmentState-Eigenschaft einen Thread, um anzugeben, dass er in einem Singlethread-Apartment oder einem Multithread-Apartment ausgeführt wird. Diese Eigenschaft kann festgelegt werden, wenn sich der Thread im Unstarted-Threadzustand oder im Running-Threadzustand befindet. Sie kann für einen Thread jedoch jeweils nur einmal festgelegt werden. Wenn die Eigenschaft nicht festgelegt wurde, wird Unknown zurückgegeben.

Wichtiger HinweisWichtig

In .NET Framework, Version 2.0, werden neue Threads als ApartmentState.MTA initialisiert, wenn ihr Apartmentzustand vor ihrem Start nicht festgelegt wurde. Der Hauptanwendungsthread wird standardmäßig mit ApartmentState.MTA initialisiert. Sie können den Hauptanwendungsthread nicht mehr auf ApartmentState.STA festlegen, indem Sie die System.Threading.ApartmentState-Eigenschaft in der ersten Codezeile festlegen. Verwenden Sie stattdessen STAThreadAttribute.

In .NET Framework, Version 2.0, können Sie das COM-Threadingmodell für eine C++-Anwendung mit der Linkeroption /CLRTHREADATTRIBUTE (Festlegen des CLR-Threadattributs) angeben.

Das folgende Codebeispiel veranschaulicht das Festlegen des Apartmentzustands eines Threads.


using System;
using System.Threading;

class ApartmentTest
{
    static void Main()
    {
        Thread newThread = 
            new Thread(new ThreadStart(ThreadMethod));
        newThread.SetApartmentState(ApartmentState.MTA);

        // The following line is ignored since 
        // ApartmentState can only be set once.
        newThread.SetApartmentState(ApartmentState.STA);

        Console.WriteLine("ThreadState: {0}, ApartmentState: {1}", 
            newThread.ThreadState, newThread.ApartmentState);

        newThread.Start();

        // Wait for newThread to start and go to sleep.
        Thread.Sleep(300);
        try
        {
            // This causes an exception since newThread is sleeping.
            newThread.SetApartmentState(ApartmentState.STA);
        }
        catch(ThreadStateException stateException)
        {
            Console.WriteLine("\n{0} caught:\n" +
                "Thread is not in the Unstarted or Running state.", 
                stateException.GetType().Name);
            Console.WriteLine("ThreadState: {0}, ApartmentState: {1}",
                newThread.ThreadState, newThread.GetApartmentState());
        }
    }

    static void ThreadMethod()
    {
        Thread.Sleep(1000);
    }
}


.NET Framework

Unterstützt in: 1.1, 1.0
Veraltet (Compilerwarnung) in 4.5
Veraltet (Compilerwarnung) in 4
Veraltet (Compilerwarnung) in 3.5
Veraltet (Compilerwarnung) in 3.5 SP1
Veraltet (Compilerwarnung) in 3.0
Veraltet (Compilerwarnung) in 3.0 SP1
Veraltet (Compilerwarnung) in 3.0 SP2
Veraltet (Compilerwarnung) in 2.0
Veraltet (Compilerwarnung) in 2.0 SP1
Veraltet (Compilerwarnung) in 2.0 SP2

.NET Framework Client Profile

Veraltet (Compilerwarnung) in 4
Veraltet (Compilerwarnung) in 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

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

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2015 Microsoft