Оптимизация создания экземпляра Windows WF 3.5 для запроса 200 - PullRequest
0 голосов
/ 03 октября 2011

В настоящее время у меня есть процесс, который создает экземпляр 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 учетных записей общее время> 1 мин.

это создается в режиме реального времени, когда пользователь нажимает кнопку запроса на создание.

Пожалуйста, сообщите, есть ли что-нибудь еще, что я могу сделать, чтобы сделать это быстрее.

1 Ответ

0 голосов
/ 25 января 2012

Я не уверен, что можно сделать для WF3.5, чтобы ускорить процесс.Движок WF3.5 во время выполнения имеет много присущих ему проблем «нехватки оптимизации», которые просто невозможно исправить или обойти (особенно способ реализации циклических конструкций, таких как операция While).

Если это возможно для вашего проекта, вам стоит подумать о переписывании его в WF4.Двигатель времени выполнения для WF4 - это полное переписывание с большим вниманием к большим и быстрым рабочим процессам.См. http://msdn.microsoft.com/en-us/library/gg281645.aspx для сравнения скоростей WF3.5 и WF4.

Даже если невозможно переписать ваш рабочий процесс в WF4, вы должны обновить его, чтобы запустить рабочий процесс 3.5используя 4-х движок (через активность WF4 Interop).Это все еще может потенциально удвоить вашу скорость по сравнению с использованием двигателя WF3.5.См. Внизу страницы по ссылке выше для сравнения с использованием действия Interop.

...