2014-02-11 399 views
0

我想要一個代碼活動,它將調用自定義NativeActivity,並在繼續之前等待結果。我可以通過工作流設計器使用PickBranch觸發器完成此操作,但是當我嘗試在代碼中執行此操作時,它調用了NativeActivity,但是當我嘗試恢復它時,出現超時錯誤。是否可以等待書籤從代碼活動中恢復?

基本上,這就是我正在做的。

 

WaitForResponseBookmark nativeActivity = new WaitForResponseBookmark(); 

//This is where it sits and waits 
var response = WorkflowInvoker.Invoke(nativeActivity); 

這裏是也許我不應該使用WorkflowInvoker爲WaitForResponseBookmark

 
public class WaitForResponseBookmark : NativeActivity<RequestResponse> 
    { 
     protected override bool CanInduceIdle 
     { 
      get 
      { 
       return true; 
      } 
     }

protected override void Execute(NativeActivityContext context) 
    { 
     context.CreateBookmark("WaitForResponseBookmark", BookmarkResumed); 
    } 

    private void BookmarkResumed(NativeActivityContext context, 
     Bookmark bk, object state) 
    { 
     Result.Set(context, state); 
    } 
} 

的代碼,我不知道......似乎沒有被太多的文件這樣做,至少我可以找到。

任何幫助,將不勝感激。

回答

1

你可能會阻止自己。工作流程是單線程的,我認爲你在等待某些事情發生時正在消耗線程。 WaitForResponseBookmark做什麼?

+0

我想我應該包括這一點。這是一個等待用戶響應的本地活動。我已經修改了這個問題來包含這個問題。 – doobist

0

看來你正在使用WorkflowInvoker。這種類型的工作流引擎不支持書籤,而必須使用WorkflowApplication引擎。