Рабочий процесс: Как я могу сигнализировать об окончании одной ветви параллельной операции из другой ветви? - PullRequest
1 голос
/ 02 марта 2010

У меня есть рабочий процесс с параллельной активностью, где одна ветвь работает, а другая имеет операцию получения, которая может завершить рабочий процесс (это правильный способ сделать это с HandleExternalEvent вместо этого?) Проблема, конечно, заключается в том, что если действие приема никогда не вызывается, рабочая ветвь завершается и ожидает в ветви действия получения. Как я могу подать сигнал другой ветке, чтобы закрыть действие? Я немного поигрался с использованием функции прослушивания для удержания действия получения и пользовательского события, но я также кое-что упускаю, как заставить это работать.

Ответы [ 2 ]

1 голос
/ 03 февраля 2011

Вы можете использовать «CompletionCondition», которое является свойством параллельного действия, которое указывает, должно ли параллельное действие завершиться, если ветвь заканчивается.

Вы можете проверить это здесь

0 голосов
/ 16 ноября 2010

Вы можете отменить действие прослушивания в альтернативной ветви, используя метод CancelActivity объекта ActivityExecutionContext:

http://msdn.microsoft.com/en-us/library/system.workflow.componentmodel.activityexecutioncontext.cancelactivity.aspx

...