Quartz.net 작업을 한 단일 스레드 아파트에서 운영하는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/1449393

문제

나는 단순히 이것을 시도했다 :

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

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

그러나 InvalidoperationException을 생성합니다. 아이디어?

도움이 되었습니까?

해결책

스레드는 이미 스레드 풀에서 할당되었으므로 STA에서 생성 된 스레드가 될 수 없습니다. 당신이 할 수있는 일은 ijob.execute 메소드에서 STA 스레드를 시작하는 것입니다.

public void Execute(JobExecutionContext context)
{
    Thread t= new Thread(DoSomeWork);
    t.SetApartmentState(ApartmentState.STA);
    t.Start();
    t.Join();
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top