메인 스레드에서 동 기적으로 실행되는 TaskScheduler를 생성하여 WPF 응용 프로그램을 디버깅 목적으로 단일 스레드로 구성 할 수있는 방법을 찾고 있습니다.TaskScheduler를 동 기적으로 만들고 메인 스레드에서 실행
아이디어가 있으십니까?
지금 나는 응용 프로그램이 시작하기 전에 정적 TaskFactory를 설정하는 동시성 레벨 (얼마나 많은 스레드가 사용) 및이 확장을 지정할 수 있도록하는 MSDN의 샘플 LimitedTaskScheduler을 사용하고 있습니다 : 테스트를 위해
void SetOnTaskFactory(TaskFactory taskFactory)
{
const BindingFlag = BindingFlags.Static | BindingFlags.NonPublic
var field = typeof(Task).GetField("s_factory", BindingFlag);
field.SetValue(null, taskFactory);
}
어쩌면 VAR 스케줄러 = TaskScheduler.FromCurrentSynchronizationContext(); ? – jure
InvalidOperationException을 수신하는 방식으로 SynchronizationContext.SetSynchronizationContext (새 SynchronizationContext())를 만들어야하지만 보조 스레드에서 코드가 실행되는 경우 작동하지 않습니다. –
코드가 단위 테스트 내에서 실행됩니까? 앱이 실행중인 경우 작동해야합니다. 단위 테스트의 경우 CurrentThreadTaskScheduler를 살펴보십시오. http://blogs.msdn.com/b/pfxteam/archive/2010/04/09/9990424.aspx – jure