2010-03-26 128 views
4

我正在使用Wf4编写批准资源请求的新工作流程的Visual Studio 2010 Release Candidate。在我的工作流程中,如果申请没有获得批准,我希望在几天后过期。我们在WF 3.5(Visual Studio 2008)中通过向EventDrivenActivity中添加一个Delay定时器到EventDrivenActivity中并行,该EventDrivenActivity正在等待批准者前来审批请求。如果延迟在批准之前过期,则EventDrivenActivity将终止该请求。有谁知道在WF4中是否有类似的机制?Windows Workflow Foundation 4(WF4)延迟

回答

5

在WF4中,使用Pick活动以相同的方式完成。一个Pick有多个PickBranch孩子,每个孩子都有一个Trigger和一个Action。每个触发器都会执行并包含延迟,接收或其他任何您正在等待的内容。该Action包含任何需要执行的内容。只有与第一个触发器完成相关的动作被执行,其他触发器将被取消,其他动作被跳过。

+0

Maurice,谢谢你的发帖!我已将工作流程更改为包含具有2个分支的Pick活动,其中一个是TimeSpan.FromSeconds(30)的延迟,但30秒后没有任何反应。我是否需要使用WorkflowServiceHost承载我的工作流程才能使其工作?我正在尝试使用WorkflowApplication托管工作流程。 – 2010-03-29 13:26:26

+0

Maurice,我刚刚设置了一个测试工作流控制台项目,带有一个选择活动和2个分支,其中一个分支具有短延迟和WriteLine活动来编写消息。就像你说的那样工作,但我认为它工作,因为我的托管控制台应用程序仍在运行。我真正的应用程序是一个ASP.Net MVC应用程序,它产生我的工作流程(延迟挑选活动的分支),然后托管应用程序完成并终止。这是什么原因造成的问题,是否有某种方式来使用由Web应用程序托管的工作流程中的选择/分支/延迟? – 2010-03-29 14:45:57

+0

您可以使用什么来承载工作流程?在WorkflowApplication的情况下,您负责卸载后重新加载工作流程。如果您使用WorkflowServiceHost,它将从persitence商店为您重新加载工作流程。我会建议使用后者,并使用WCF将消息从ASP.NET MVC应用程序发送到工作流服务。 – Maurice 2010-03-29 19:24:14

相关问题