簡體   English   中英

在WF 4和MVC3中正確完成工作流程的執行

[英]Properly completing execution of a Workflow in WF 4 and MVC3

我有一個運行的工作流程(由WorkflowApplication托管),發送電子郵件,然后使用書簽進行保存。 電子郵件具有一個鏈接,該鏈接使工作流程可以在該書簽處恢復,這可以正常進行。 但是,工作流完成后,該網頁將永遠不會加載。

就像頁面正在等待工作流完成一樣,但是從來沒有完成。 我對工作流非常陌生,對多線程甚至還比較新,所以我的問題是:

我需要做些什么特別的事情才能完全退出工作流,以便將控制權交還給主線程嗎? 像委托方法,我想念嗎?

干杯

所以我在發帖后馬上就知道了,很抱歉。 雖然是這樣:

因為工作流在單獨的線程上,所以一旦完成,它就不會與主線程同步。 因此,我需要在Completed委托中添加一個方法,以確保完成后它與主線程同步。 我只是忘記了。 希望這對某人有幫助。

首先,您需要設置和自動重置事件以及一個WorkflowApplication對象

 private static AutoResetEvent _syncEvent = new AutoResetEvent(false);
 private static WorkflowApplcation _wfApp = new WorkflowApplication(new MyActivity());

然后在wfApp的委托方法中,確保調用:

 _syncEvent.Set();

所以:

wfApp.Completed = (e) =>
              {
                Debug.WriteLine("Workflow completed: {0}", e.Outputs["Message"]);
                _syncEvent.Set();
              };

這最后一部分是我所缺少的

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM