2

我正在努力研究WF 4.0,但我很難弄清楚如何在STA線程中運行工作流。我需要在工作流中構建XPS文檔,這意味着我需要創建UI元素(FixedPage),這意味着運行工作流的線程必須是STA。單線程單元中的工作流程4.0?

在3.0中,使用ManualWorkflowSchedulerService可以在STA線程中運行工作流,從而可以實現一些神奇功能(我沒有管理這部分代碼,因此這裏沒有詳細說明)。但現在4.0有很大不同;即使beta 2不同於beta 1 ...

任何人都知道如何獲得STA線程中運行的4.0工作流程?


,因爲它僅適用於短暫的工作流程不需要持久性,這是我做的,我不能使用WorkflowInvoker。

回答

3

您是否嘗試過使用WorkflowInvoker?這應該只是在原始線程上執行工作流程,而不是在後臺階段安排工作。

+0

我剛纔看到了。但它也會阻止當前線程,這並不是最優的... – Will 2009-11-05 15:40:24

+1

當您使用WorkflowApplication時,您可以設置SynchronizationContext並獲得對線程的控制。默認情況下,如果未設置SynchronizationContext,它將使用ThreadPool完成端口。但是,如果將WorkflowApplication.SynchronizationContext設置爲SynchronizationContext.Current,那麼在WPF中,您的活動將在UI線程而不是ThreadPool上執行。 SynchronizationContext.Current的內容依賴於執行環境,或者您可以根據需要創建自己的實現。 – Maurice 2009-11-05 20:27:45

+0

我會研究一下。我之前檢查過它,沒有看到有關創建線程或調度作業的任何內容... – Will 2009-11-05 21:28:01

相關問題