我目前有一个流程可以为客户拥有的每个帐户创建一个Windows wf 3.5实例。
foreach (Account acct in Customer.Accounts)
{
Dictionary<string, object> param = new Dictionary<string, object>();
param.Add("account", acct);
//create the workflow instance
WorkflowInstance instance = workflowRuntime.CreateWorkflow(typeof(AcctWorkflow), param);
//start and run the workflow
instance.Start();
scheduler.RunWorkflow(instance.InstanceId);
}
目前每个请求的创建时间约为500毫秒,但是给定200个帐户,总时间&gt; 1分钟。
这是在用户点击创建请求按钮时实时创建的。
请告知我是否还有其他事情可以让它更快。
答案 0 :(得分:0)
我不知道可以为WF3.5做些什么来加快速度。 WF3.5运行时引擎有许多固有的“缺乏优化”问题,这些问题无法修复或解决(特别是循环结构的方式,例如While活动,已实现)。
如果您的项目可行,您应该考虑将其重新写入WF4。 WF4的运行时引擎是一个完整的重写,强烈考虑大型+快速工作流程。有关WF3.5与WF4运行时引擎的速度比较,请参阅http://msdn.microsoft.com/en-us/library/gg281645.aspx。
即使无法将工作流程重写为WF4,您也应该使用4引擎(通过WF4 Interop活动)更新以运行3.5工作流程。与使用WF3.5引擎相比,这仍然可能使您的速度加倍。请参阅上面链接页面的底部,以便使用Interop活动进行比较。