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

Clase MTAThreadAttribute

 

Publicado: octubre de 2016

Indica que el modelo de subprocesos COM de una aplicación es contenedor multiproceso (MTA).

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

System.Object
  System.Attribute
    System.MTAThreadAttribute

[AttributeUsageAttribute(AttributeTargets.Method)]
[ComVisibleAttribute(true)]
public sealed class MTAThreadAttribute : Attribute

NombreDescripción
System_CAPS_pubmethodMTAThreadAttribute()

Inicializa una nueva instancia de la clase MTAThreadAttribute.

NombreDescripción
System_CAPS_pubpropertyTypeId

Cuando se implementa en una clase derivada, obtiene un identificador único para este Attribute.(Heredado de Attribute).

NombreDescripción
System_CAPS_pubmethodEquals(Object)

Esta API admite la infraestructura producto y no está diseñada para usarse directamente desde el código. Devuelve un valor que indica si esta instancia equivale al objeto especificado. (Heredado de Attribute).

System_CAPS_pubmethodGetHashCode()

Devuelve el código hash de esta instancia.(Heredado de Attribute).

System_CAPS_pubmethodGetType()

Obtiene el Type de la instancia actual.(Heredado de Object).

System_CAPS_pubmethodIsDefaultAttribute()

Si se reemplaza en una clase derivada, indica si el valor de esta instancia es el valor predeterminado de la clase derivada.(Heredado de Attribute).

System_CAPS_pubmethodMatch(Object)

Cuando se invalida en una clase derivada, devuelve un valor que indica si esta instancia es igual al objeto especificado. (Heredado de Attribute).

System_CAPS_pubmethodToString()

Devuelve una cadena que representa al objeto actual. (Heredado de Object).

NombreDescripción
System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Asigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío.(Heredado de Attribute).

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Obtiene la información del tipo de un objeto, que puede utilizarse para obtener la información del tipo de una interfaz. (Heredado de Attribute).

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetTypeInfoCount(UInt32)

Recupera el número de interfaces de tipo de información que suministra un objeto (0 ó 1)

(Heredado de Attribute).

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Proporciona acceso a las propiedades y los métodos expuestos por un objeto.(Heredado de Attribute).

Aplicar este atributo al método de punto de entrada (el Main() método en C# y Visual Basic). No tiene ningún efecto en otros métodos. Para establecer el estado de apartamento de subprocesos que se inician en el código, utilice la Thread.SetApartmentState o Thread.TrySetApartmentState antes de iniciar el subproceso.

System_CAPS_noteNota

Para obtener una introducción a los modelos de subprocesos de COM, consulte Understanding and Using COM Threading Models.

Modelos de subprocesamiento COM sólo se aplican a las aplicaciones que utilizan la interoperabilidad COM. El modelo de subprocesos de COM se puede establecer en un contenedor uniproceso o apartamento multiproceso. El subproceso de la aplicación sólo se inicializa para interoperabilidad COM si realmente realiza una llamada a un componente COM. Si no se utiliza la interoperabilidad COM, el subproceso no se inicializa y el MTAThreadAttribute atributo, si está presente, no tiene ningún efecto.

A partir de la versión 2.0 de .NET Framework, el valor predeterminado el modelo para la interoperabilidad COM de subprocesos depende el lenguaje en el que está desarrollando la aplicación, como se muestra en la tabla siguiente.

Lenguaje

Modelo de apartamento COM

C#

Modelo de subprocesamiento múltiple

C++

Modelo de subprocesamiento múltiple

Visual Basic

Un contenedor uniproceso

Para cambiar estos valores predeterminados, utilice la MTAThreadAttribute atributo para establecer el modelo de subprocesos de la aplicación o la llamada la Thread.SetApartmentState o Thread.TrySetApartmentState antes de iniciar el subproceso para establecer el modelo de subprocesos para un subproceso determinado. En C++, también puede utilizar el /CLRTHREADATTRIBUTE (Establecer el atributo de subproceso de CLR) del vinculador para especificar el modelo de apartamento.

Algunos de los casos en los que desea utilizar el MTAThreadAttribute atributo para establecer explícitamente el modelo de subprocesos en un apartamento multiproceso incluyen los siguientes:

  • Está desarrollando una aplicación de Visual Basic que llama a una biblioteca de C# que a su vez se basa en la interoperabilidad COM. Dado que el modelo de apartamento multiproceso es el valor predeterminado de C#, debe cambiar modelo de subprocesos de la aplicación a multiproceso mediante el MTAThreadAttribute atributo.

  • La aplicación realiza llamadas a componentes COM que utilizan el modelo de apartamento multiproceso.

Plataforma universal de Windows
Disponible desde 8
.NET Framework
Disponible desde 1.1
Biblioteca de clases portable
Se admite en: plataformas portátiles de .NET
Windows Phone Silverlight
Disponible desde 8.0
Windows Phone
Disponible desde 8.1

Cualquier miembro ( Compartido en Visual Basic) estático público de este tipo es seguro para subprocesos. No se garantiza que los miembros de instancia sean seguros para subprocesos.

Volver al principio
Mostrar: