我想要一个代码活动来调用自定义NativeActivity并在继续之前等待结果。我可以通过工作流设计器使用PickBranch触发器执行此操作,但是当我尝试在代码中执行此操作时,它会调用NativeActivity,但是当我尝试恢复它时,我会收到超时错误。
基本上,这就是我正在做的事情。
WaitForResponseBookmark nativeActivity = new WaitForResponseBookmark();
//This is where it sits and waits
var response = WorkflowInvoker.Invoke(nativeActivity);
以下是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); } }
protected override void Execute(NativeActivityContext context) { context.CreateBookmark("WaitForResponseBookmark", BookmarkResumed); } private void BookmarkResumed(NativeActivityContext context, Bookmark bk, object state) { Result.Set(context, state); } }
也许我不应该使用WorkflowInvoker,我不知道......似乎没有太多关于这样做的文档,我至少可以找到。
任何帮助都将不胜感激。
答案 0 :(得分:1)
你可能会阻止自己。工作流是单线程的,我认为你正在等待某些事情发生时消耗线程。 WaitForResponseBookmark做了什么?
答案 1 :(得分:0)
您似乎正在使用WorkflowInvoker
。此类工作流引擎不支持书签,您必须使用WorkflowApplication
引擎。