【问题标题】:Optimizing Windows WF 3.5 Instance Creation for 200 request针对 200 个请求优化 Windows WF 3.5 实例创建
【发布时间】:2011-10-03 10:21:45
【问题描述】:

我目前有一个为客户拥有的每个帐户创建一个 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);                    
                }

目前每个请求的创建时间约为500ms,但给定200个账户,总时间> 1分钟。

这是在用户单击创建请求按钮时实时创建的。

请告知我是否可以做任何其他事情以使其更快。

【问题讨论】:

    标签: windows workflow-foundation


    【解决方案1】:

    我不确定 WF3.5 可以做些什么来加快速度。 WF3.5 运行时引擎存在许多无法修复或解决的固有“缺乏优化”问题(尤其是循环结构的实现方式,例如 While 活动)。

    如果对您的项目可行,您应该考虑将其重新写入 WF4。 WF4 的运行时引擎是对大型+快速工作流的强烈考虑的完全重写。有关 WF3.5 与 WF4 运行时引擎的速度比较,请参阅 http://msdn.microsoft.com/en-us/library/gg281645.aspx

    即使无法将工作流重写为 WF4,您也应该更新以使用 4 引擎运行 3.5 工作流(通过 WF4 互操作活动)。与使用 WF3.5 引擎相比,这仍然可能使您的速度翻倍。有关使用 Interop 活动的比较,请参见上面链接页面的底部。

    【讨论】:

      猜你喜欢
      • 2018-12-16
      • 1970-01-01
      • 2017-05-02
      • 2017-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多