Как реализовать InvokeWorkflow завершения события в Windows Workflow Foundation

Переводы статьи Переводы статьи
Код статьи: 926499 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

В этой статье

Введение

В данной статье описываются способы реализацииInvokeWorkflowзавершенного события. Данная статья содержит следующие разделы:
  • Добавьте код дляInvokeWorkflowсобытие.
  • Проверка завершения.

Дополнительная информация

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

Добавить код для InvokeWorkflow завершения события

При использовании следующего кода для события завершения, программа будет остановлена после завершения одного рабочего процесса.
workflowRuntime.WorkflowCompleted += delegate(object sender, WorkflowCompletedEventArgs e)
{
    waitHandle.Set();
};
Если вы хотите увидеть выполнения и результатов рабочих процессов, работающих под управлением, необходимо установитьWaitHandleсобытие для каждого процесса. Это включает в себя вызываемого рабочие процессы и процесс вызова. Необходимо установитьWaitOneсобытие для каждого рабочего процесса.

ПримечаниеМожно создатьWaitHandleсобытия вместе сAutoResetEventsсобытие, используя следующий код.
AutoResetEvent waitHandle = new AutoResetEvent(false);
Рабочий процесс, имеющий один вызов рабочего процесса можно использовать следующий код для рабочего процесса.
workflowRuntime.WorkflowCompleted += delegate(object sender, WorkflowCompletedEventArgs e)
{
    waitHandle.Set();
};
// In the hosting code, wait two times.
waitHandle.WaitOne();   // This waits for the invoked workflow to be completed.
waitHandle.WaitOne();   // This waits for the host workflow to be completed.
ПримечаниеДве рабочие процессы завершаются: размещения рабочего процесса и вызываемого потока работ.

Проверка выполнения

Для проверки выполнения для конкретного экземпляра, используйте следующий код.
workflowRuntime.WorkflowCompleted += delegate(object sender, WorkflowCompletedEventArgs e)
{

   if (e.WorkflowInstance.InstanceId == DESIRED_INSTANCE_ID)
       waitHandle.Set();
};
Для основного процесса можно использоватьWorkflowInstance.InstanceIdсвойство для проверки выполнения вызова рабочего процесса.

Свойства

Код статьи: 926499 - Последний отзыв: 28 сентября 2011 г. - Revision: 3.0
Информация в данной статье относится к следующим продуктам.
  • Windows Workflow Foundation
Ключевые слова: 
kbhowto kbmt KB926499 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:926499

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com