Estoy creando una aplicación de prueba automatizada. En esta parte de la aplicación, estoy trabajando en un servidor de sondeo. Funciona al sondear constantemente el servidor web para determinar cuándo debe ejecutarse una nueva prueba automatizada (para ejecuciones automáticas nocturnas de nuestra aplicación GUI).¿Cómo puedo configurar un subproceso de trabajador de fondo en Single Thread Apartment?
Cuando el servidor de sondeo ve una solicitud, descarga toda la información necesaria y luego ejecuta la ejecución de prueba en un trabajador de segundo plano. El problema es que parte de la ejecución de prueba tiene OLE, COM y otras llamadas (por ejemplo, Clipboard.Clear()
) que se producen en el subproceso de trabajo en segundo plano. Cuando se produce una de estas llamadas, se produce la siguiente excepción:
El hilo actual debe establecerse en el modo de apartamento de una sola rosca (STA) antes de poder realizar llamadas OLE. Asegúrese de que su función principal tenga marcado STAThreadAttribute.
¿Cómo puedo marcar un hilo de trabajador de fondo como un único apartamento de hilo? La llamada principal en mi Program.cs obviamente ya tiene ese atributo.
' Clipboard.Clear() 'no es COM Es API nativa de Windows – Aliostad
portapapeles utiliza COM para negociar.. datos y formatos del portapapeles –