C# 是否可以等待书签从代码活动中恢复?

C# 是否可以等待书签从代码活动中恢复?,c#,workflow-foundation-4,C#,Workflow Foundation 4,我想有一个代码活动,它将调用自定义NativeActivity并等待结果,然后再继续。我可以通过工作流设计器使用PickBranch触发器来实现这一点,但当我尝试在代码中实现时,它会调用NativeActivity,但当我尝试恢复它时,会出现超时错误 基本上,这就是我正在做的 WaitForResponseBookmark nativeActivity = new WaitForResponseBookmark(); //This is where it sits and waits var

我想有一个代码活动,它将调用自定义NativeActivity并等待结果,然后再继续。我可以通过工作流设计器使用PickBranch触发器来实现这一点,但当我尝试在代码中实现时,它会调用NativeActivity,但当我尝试恢复它时,会出现超时错误

基本上,这就是我正在做的


WaitForResponseBookmark nativeActivity = new WaitForResponseBookmark();

//This is where it sits and waits
var response = WorkflowInvoker.Invoke(nativeActivity);
这是WaitForResponseBookmark的代码


也许我不应该使用WorkflowInvoker,我不知道。。。至少我可以找到,似乎没有太多关于这方面的文档


任何帮助都将不胜感激。

您可能正在阻止自己。工作流是单线程的,我认为您在等待某些事情发生时正在消耗线程。WaitForResponseBookmark做什么?

看起来您使用的是
WorkflowInvoker
。这种类型的工作流引擎不支持书签,您必须使用
WorkflowApplication
引擎。

我想我应该包括它。它是等待用户响应的本机活动。我修改了这个问题,将其包括在内。 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);
    }
}