天天看點

使用本地服務異步執行自定義活動業務邏輯

通常情況下我們開發的自定義活動的業務邏輯都是寫在Execte方法中的,由于一個工作流執行個體在單一的線程上執行,這樣當工作流在執行到這個活動的時候,該活動就獨占了整個工作流的線程,如果該自定義活動需要做很長時間的任務,那麼此時就不能處理工作流中的其他請求。是以我們不建議把所有的業務邏輯都放到Execute方法中去執行。

1.我們可以将活動的業務邏輯放到本地服務中去異步執行,下面我們用一個例子來說明,建立一個順序型工作流控制台項目,首先我們先寫兩個類CaryWork和CaryWorkResult,分别代表我們要執行的工作項和傳回的結果,代碼如下:

ResultQueueName 表示傳回結果的隊列名稱。

InstanceId表示工作流的id 

WorkItem 表示要執行的任務

2.然後我們開始編寫本地服務的部分,首先聲明一個接口,接口中的方法将會在自定義活動中調用,代碼如下:

public interface ILongTaskServices

{

   voidDoLongTaskWork(CaryWorkworkToDo);

}

然後實作該接口,代碼如下:

<a href="http://11011.net/software/vspaste"></a>

本文轉自生魚片部落格園部落格,原文連結:http://www.cnblogs.com/carysun/archive/2008/11/01/LongActivity.html,如需轉載請自行聯系原作者