2009-05-22 4 views
0

У меня есть два вопроса. 1. Почему класс рабочего процесса «SEALED» класс рабочего процесса? Неправильная практика заключается в наследовании рабочих процессов? 2. Операция while медленная. IE .: Я ставлю 3 мероприятия на seqential ВФ в таком порядке ... Code_activity1 While_activity Code_activity2 (в то время как активность)Наследование MS Workflow Foundation и пока активность


Code_activity1 - устанавливает INT счетчик на 33320. While_activity - петли до счетчика> 0. Code_activity2 - уменьшает счетчик на 1 (счетчик--);

Теперь проблема заключается в том, что требуется слишком много времени для выполнения всего рабочего процесса (около 20 минут) !!!

Если бы я сделать то же самое вручную на код :,

int counter = 33320; 
while(counter>0) 
    counter--; 

Она занимает около 1 миллисекунды.

Почему активность так медленно?

Благодаря

ответ

0

1) Несмотря на то, генерируемый класс запечатанное как в

public sealed partial class Workflow1: SequentialWorkflowActivity 

ничего действительно останавливает вас от удаления запечатанного ключевого слова и наследовать от него. Я думаю, вы, как правило, не хотите наследовать от рабочего процесса, который вы разрабатываете и опечатали, как говорят, дают вам некоторые преимущества в производительности.

2) http://msdn.microsoft.com/en-us/library/ms735819.aspx немного объясняет, как работает деятельность. Вы добавляете указанное творение дочерней активности 33320 раз, все события, которые срабатывают при выполнении/инициализации активности и т. Д., И все дополнительные действия, которые требуется обработать рабочей среде, и вы получаете 20 минут.