Quartz.net 작업을 한 단일 스레드 아파트에서 운영하는 방법은 무엇입니까?
-
11-09-2019 - |
문제
나는 단순히 이것을 시도했다 :
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();
}
제휴하지 않습니다 StackOverflow