2011-01-06 4 views
2

Я использую WorkflowFoundation 4.0 в приложении WinForms. Когда пользователь закрывает форму, программа не выходит из-за того, что рабочий процесс работает в фоновом режиме.Workflow Foundation - Terminate vs Abort vs Cancel

Рабочий процесс создается следующим образом:

WorkflowApplication workflow = new WorkflowApplication(new myActivity()); 
workflow.Run(); 

Я хотел бы, чтобы «закрыть» это в моем случае FormClosing. Какой метод я должен использовать? Terminate, Abort или Cancel?

+0

Что вы имеете в виду под 'закрыть' его. что именно вы хотите сделать с рабочим процессом. –

+0

Я бы хотел отменить его поток, чтобы форма была полностью удалена, и чтобы не иметь оставшихся потоков ... – veljkoz

+0

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

ответ

6

В зависимости от ваших потребностей/рабочего процесса либо «Завершить», либо «Отменить». Abort предназначен для оставления сохраненного состояния, если вы используете хранилище экземпляров, и перезапустите рабочий процесс из последнего сохраненного состояния.

Использование прекратить, если вы хотите больше действий, включая очистку наподобие блоков finally, выполнить. Используйте «Отмена», если вы хотите иметь возможность очистки рабочего процесса после себя. В большинстве случаев я предлагаю Отменить.

+0

Насколько это документировано? –

Смежные вопросы