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