Рабочий процесс Windows прекращается после истечения срока - PullRequest
0 голосов
/ 23 марта 2012

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

Проблема в том, что с каждым рабочим процессом связана дата выполнения, поэтому мне нужно прервать рабочий процесс, если срок его выполнения истек.Первоначально я думал, что я предоставлю другую отдельную службу WCF в рабочем процессе, которая будет прерывать рабочий процесс только при вызове этой службы.Но когда я создал отдельную службу WCF (SendAndReply Activity), она не отображалась как контракт операции, когда я добавил ссылку на службы рабочего процесса.

Может кто-нибудь сказать мне, как мы можем прекратить рабочий процесс, если срок выполнения достигнут?То есть как сделать отдельный процесс для прекращения рабочего процесса?

Ответы [ 2 ]

2 голосов
/ 23 марта 2012

Вы должны быть в состоянии поставить таймер в рабочем процессе.Существует ветвь управления, которая ожидает, пока не произойдет одно из двух (или более) событий.Используйте этот элемент управления, где первое удовлетворяющее событие - это действие пользователя, а второе удовлетворяющее событие - это таймер.

1 голос
/ 23 марта 2012

Как я понял, ваш рабочий процесс более подходит для его реализации в качестве конечного автомата.Тогда вы можете легко реализовать ожидание пользовательского ввода.Вы можете использовать триггер с активностью задержки, чтобы завершить (или перейти в конечное состояние) для своей задачи. Или же вы можете использовать активность триггера отправки в триггере, чтобы представить ее как службу WCF.используйте system.activities.extensions, вы можете легко использовать действие DelayUntilDateTime.

...