2

지금 WF 4.0을 열심히보고 있지만 STA 스레드에서 워크 플로를 실행하는 방법을 파악하는 데 어려움을 겪고 있습니다. 워크 플로에서 XPS 문서를 구성하기위한 요구 사항이 있습니다. 즉, UI 요소 (FixedPage)를 만들어야한다는 의미입니다. 즉, 워크 플로를 실행하는 스레드가 STA 여야 함을 의미합니다.단일 스레드 아파트에서 Workflow 4.0?

3.0에서는 STA 스레드에서 실행되는 워크 플로를 얻으려면 MagicWorkflowSchedulerService를 사용하여 약간의 마법 (코드의이 부분을 관리하지 않았으므로 여기서는 세부 정보가 없음)을 수행 할 수 있습니다. 그러나 이제는 4.0이 많이 다릅니다. 베타 2는 베타 1과 다릅니다 ...

STA 스레드에서 실행되는 4.0 워크 플로를 얻는 방법을 알고 계십니까? 그것이 내가 할 지속성을 필요로하지 않는 일시적인 워크 플로우 만 있기 때문에


은 내가 WorkflowInvoker를 사용할 수 없습니다.

답변

3

WorkflowInvoker를 사용해 보셨습니까? 이 작업은 원래 스레드에서 워크 플로를 실행하고 백그라운드 트레드에서 작업을 예약하지 않아야합니다.

+0

방금 ​​보았습니다. 그러나 최적의 상태가 아닌 현재 스레드를 차단합니다. – Will

+1

WorkflowApplication을 사용할 때 SynchronizationContext를 설정하고 스레드를 제어 할 수 있습니다. 기본적으로 SynchronizationContext가 설정되어 있지 않으면 ThreadPool 완료 포트를 사용합니다. 그러나 WPF에서 WorkflowApplication.SynchronizationContext를 SynchronizationContext.Current로 설정하면 활동이 ThreadPool 대신 UI 스레드에서 실행됩니다. SynchronizationContext.Current의 내용은 실행 환경에 따라 다르며 필요한 경우 사용자 고유의 구현을 만들 수 있습니다. – Maurice

+0

그 부분을 살펴 보겠습니다. 나는 전에 그것을 체크하고 쓰레드를 생성하거나 작업을 스케줄링하는 것과 관련된 것을 보지 못했습니다 ... – Will

관련 문제