1

這是情景:Workflow Foundation StateFinalizationActivity是否阻塞線程?

我使用ManualWorkflowScheduler狀態機工作流。假設有2個狀態:狀態1狀態2。 State1包含EventDrivenActivity1,它具有將工作流從State1移動到State2的SetStateActivity1。 State1也有一個StateFinalizationActivity1。

所以我的問題是:

當一個事件引發和SetStateActivity1執行和改變工作流程的狀態,狀態2,被StateFinalizationActivity1同一線程上執行(作爲呼叫的一部分)作爲所提出的方法引起狀態改變的事件(意思是 - 調用方法是否必須等待,直到EventDrivenActivity1和StateFinalizationActivity1的兩個序列都執行,否則將在執行EventDrivenActivity1並返回後執行StateFinalizationActivity1之後返回)?

+0

你有什麼看到你不期望或者這是我之前嘗試這個問題? – Lazarus 2009-11-19 16:33:44

+0

我猜這是我之前試過的問題:) – edgi 2009-11-19 16:36:12

回答

1

「Finalization」這個詞的使用我猜可能會導致一些人想到CLR終結會在不同的線程上運行。然而這是非常不同的概念。

當SetStateActivity被擊中以下順序發生: -

  • 其他在當前狀態下當前執行的活動將運行在他們的取消處理的任何活動。
  • 在StateFinalization活動將執行
  • 狀態被轉換到新的狀態
  • 任何活動,在新的狀態初始化活動將運行
  • 在美國身上的事件活動輸入。

以上所有操作均按當前線程順序運行。

1

使用ManualWorkflowScheduler時,所有可以執行的內容都將在當前線程上執行。所以工作流程將繼續並一直運行,直到它處於下一個狀態並處於空閒狀態。