天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

一步一步學WF系列(三)

  1. 寫在前面

  原本計劃從這篇文章開始,開始介紹活動的使用方式,但是考慮到很多在WF中,重要的類和概念都沒有清晰,所以還是在本文中繼續明確一下WF中重要的類的用法。

  這節是純粹的理論知識,只是為你的后續學習打下一個基礎,如果您不敢興趣,可以略過。

  2. WorkflowRuntime類

  WorkflowRuntime:工作流運行時。

  這個類有四個作用:

  <1> 管理工作流運行時

  <2> 啟動和管理工作流實例

  <3> 管理運行時服務

  <4> 處理運行時事件

  A . 管理工作流運行時

  管理工作流運行時,涉及到兩個重要的方法:StartRuntime和StopRuntime。

  StartRuntime:這個方法啟動工作流運行時引擎和工作流運行時引擎服務,當StartRuntime被調用時,會首先檢查運行時核心服務是否被添加到運行時中。核心服務即指:派生自  WorkflowCommitWorkBatchService(工作流事務服務)和WorkflowSchedulerService(工作流調度服務)的計劃程序服務。如果哪一個缺失,那么運行時就會為每一個服務創建一個默認的服務,即:DefaultWorkflowCommitWorkBatchService服務和DefaultWorkflowSchedulerService服務,然后將他們加載到運行時服務,之后通過服務的Start方法啟動服務,并將IsStart屬性設置為true,并且觸發Started事件。

  B. 啟動和管理工作流實例

  首先需要的是創建一個工作流實例,我們常用的是使用工作流運行時實例下的Create(type)方法來創建工作流實例。

  然后用這個工作流實例的Start方法,啟動自身。

  這個時候,如果工作流運行時未開啟,也就是尚未調用WorkflowRuntime的Start方法,那么這時會自動地去調用Start開啟工作流運行時。

  C. 管理運行時服務

  WorkflowRuntimeService類:這個類是工作流運行時引擎核心服務的抽象基類。我們把他叫做運行時服務。這些服務運行在工作流運行時的環境下,對用戶不可見。例如我們之前提到的WorkflowSchedulerService,WorkflowCommitWorkBatchService服務都是派生自WorkflowRuntimeService類。

image

  從WorkflowRuntimeService派生的服務都可以由工作流運行引擎啟動或停止。

  我們可以向運行時服務增加或者刪除服務,對應的方法為AddService()和RemoveService()。

  當然,我們也可以獲得某一個工作流運行時下的所有服務:對應方法為GetService()和GetAllServices()方法。

  另外,我們可以去根據某一個運行時服務的State屬性去獲得該運行時服務的運行狀況。

  D. 處理運行時事件

  其中包括工作流運行時的事件和工作流實例相關的事件。

  例如:

  WorkflowRuntime的Started,Stopped事件

  WorkflowInstance的WorkflowStarted,WorkflowStopped事件。

  3. WorkflowInstance類

  WorkflowInstance:表示一個工作流實例。

  他本質上是工作流運行時引擎所使用的實際工作流的代理。通過包含在WorkflowInstance類里的方法,宿主程序可以指示工作流運行引擎在工作流實例上進行操作。

  我們也可以把他看成我們一個工作流類定義的外包裝。

  4. 持久化點

  我們知道,工作流其中有一個特點是持久性。

  也就是說,比如我們有一個審批流,你不能因為服務器中間突然斷電,而讓整個審批流的狀態丟失。

  所以說,我們需要一個可以持久化的介質來持久化我們的工作流。這個持久化介質比較常用的就是數據庫。

  當然,我們在這里并不是討論持久化介質,而是討論持久化點。什么是持久化點,也就是說我們的工作流不能每進行一步,我們就去將他持久化一次,這樣浪費資源和效率。所以我們會在持久化點將當前的工作流實例持久化。

  在生命周期中,持久化點常常發生在以下時刻:

  <1> 在工作流實例完成或終止前

  <2> 在工作流實例編程空閑之后

  <3> 在工作流實例被顯式地卸載后

  <4> 當具有PersistOnClose特性的活動完成后(PersistOnCloseAttribute:當經過裝飾的活動完成之后,必須持久化當前工作流實例)

  并且,持久化服務對于終端用戶是不可見的。

 

NET技術一步一步學WF系列(三),轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 亚洲日韩视频免费观看 | 爽死你个放荡粗暴小淫货漫画 | 啦啦啦WWW在线观看免费高清版 | 忘忧草在线 | 色噜噜2017最新综合 | 国语大学生自产拍在线观看 | 九九久久精品国产 | 国产精品99精品无码视亚 | 亚洲欧洲日产国产 最新 | 好男人好资源视频高清 | 精品无码一区二区三区中文字幕 | 和老外3p爽粗大免费视频 | 日日夜夜操操操 | 99精品免费在线观看 | 蜜桃狠狠色伊人亚洲综合网站 | 老妇xxxxbbbb | 久久影院中文字幕 | 97超碰在线视频 免费 | 久拍国产在线观看 | 国产三级在线免费 | 亚洲国产精品久久又爽黄A片 | 男女边吃奶边做边爱视频 | 最新男同鸭子ktv | 久久国产精品麻豆AV影视 | 国内精品国内自产视频 | 啦啦啦WWW在线观看免费高清版 | 特黄特黄aaaa级毛片免费看 | 久久久国产精品免费A片蜜芽广 | 亚洲精品国产精麻豆久久99 | 女人18毛片| 熟女人妻-蜜臀AV-首页 | 国产国拍精品AV在线观看 | 欧美GV肉片视频免费观看 | 欧美久久无码AV麻豆 | 亚洲欧美综合视频 | 天天躁日日躁狠狠躁午夜剧场 | 朋友的娇妻好爽好烫嗯 | 暖暖视频在线高清播放 | 精品美女国产互换人妻 | 999精品影视在线观看 | 亚洲蜜桃AV色情精品成人 |