Exportar (0) Imprimir
Expandir todo
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

Thread.ApartmentState (Propiedad)

Nota: esta API ya está obsoleta. La alternativa no obsoleta es GetApartmentState. La alternativa no obsoleta es SetApartmentState.

Obtiene o establece el estado de apartamento de este subproceso.

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

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

Valor de propiedad

Tipo: System.Threading.ApartmentState
Uno de los valores de ApartmentState. El valor inicial es Unknown.

ExcepciónCondición
ArgumentException

Se ha intentado establecer esta propiedad en un estado que no es un estado de apartamento válido, es decir, un estado distinto al de contenedor uniproceso (STA) o apartamento multiproceso (MTA).

En las versiones 1.0 y 1.1 de .NET Framework, la propiedad ApartmentState marca un subproceso para indicar que se ejecutará en un apartamento de un solo proceso o multiproceso. Esta propiedad puede establecerse cuando el subproceso se encuentra en estado Unstarted o Running, pero sólo puede establecerse una vez por subproceso. Si no se ha establecido la propiedad, devuelve Unknown.

Nota importanteImportante

En la versión 2.0 de .NET Framework, los nuevos subprocesos se inicializan como ApartmentState.MTA si no se ha establecido su estado de tipo apartamento antes de que se inicien. El subproceso de la aplicación principal se inicializa de forma predeterminada en ApartmentState.MTA. Ya no es posible establecer el subproceso de la aplicación principal en ApartmentState.STA estableciendo la propiedad System.Threading.ApartmentState en la primera línea de código. En su lugar, utilice STAThreadAttribute.

En la versión 2.0 de .NET Framework, puede especificar el modelo de subprocesos de COM para una aplicación de C++ utilizando la opción del vinculador /CLRTHREADATTRIBUTE (Establecer el atributo de subproceso de CLR).

En el ejemplo de código siguiente se muestra la forma de establecer el estado de apartamento de un subproceso.


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

Compatible con: 1.1, 1.0
Obsoleto (advertencia del compilador) en 4.5
Obsoleto (advertencia del compilador) en 4
Obsoleto (advertencia del compilador) en 3.5
Obsoleto (advertencia del compilador) en 3.5 SP1
Obsoleto (advertencia del compilador) en 3.0
Obsoleto (advertencia del compilador) en 3.0 SP1
Obsoleto (advertencia del compilador) en 3.0 SP2
Obsoleto (advertencia del compilador) en 2.0
Obsoleto (advertencia del compilador) en 2.0 SP1
Obsoleto (advertencia del compilador) en 2.0 SP2

.NET Framework Client Profile

Obsoleto (advertencia del compilador) en 4
Obsoleto (advertencia del compilador) en 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft