Pregunta

Simplemente intentado esto:

    public class FooJob : IJob
{
    public FooJob() { }

    public void Execute(JobExecutionContext context)
    {
        Thread.CurrentThread.SetApartmentState(ApartmentState.STA);
    }
}

Pero produce InvalidOperationException. Ideas?

¿Fue útil?

Solución

El hilo ya ha sido asignado a la agrupación de hebras por lo que no puede convertirse en un hilo creado en una STA. Lo que puede hacer es poner en marcha un subproceso STA de su método IJob.Execute.

public void Execute(JobExecutionContext context)
{
    Thread t= new Thread(DoSomeWork);
    t.SetApartmentState(ApartmentState.STA);
    t.Start();
    t.Join();
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top