WorkflowApplication.Cancel Метод

Определение

Отменяет экземпляр рабочего процесса.

Перегрузки

Имя Описание
Cancel()

Отменяет экземпляр рабочего процесса.

Cancel(TimeSpan)

Отменяет экземпляр рабочего процесса с помощью указанного интервала времени ожидания.

Комментарии

Этот метод планирует отмену экземпляра рабочего процесса. Чтобы получать уведомления о завершении отмены, используйте дескриптор Completed .

По умолчанию операция отмены должна завершиться в течение 30 секунд или TimeoutException возникает.

Cancel()

Отменяет экземпляр рабочего процесса.

public:
 void Cancel();
public void Cancel();
member this.Cancel : unit -> unit
Public Sub Cancel ()

Примеры

В следующем примере размещен рабочий процесс с помощью WorkflowApplication. WorkflowApplication Экземпляр создается с помощью указанного определения рабочего процесса, обрабатываются требуемые события жизненного цикла рабочего процесса, а рабочий процесс вызывается с вызовомRun. После запуска Cancel рабочего процесса вызывается. При отмене рабочего процесса в консоли отображаются следующие выходные данные.

Starting the workflow.
Workflow bcce00c2-d323-42c2-8c25-19ff0c4b6dac Idle.
Workflow bcce00c2-d323-42c2-8c25-19ff0c4b6dac Canceled
Workflow bcce00c2-d323-42c2-8c25-19ff0c4b6dac Unloaded.
Activity wf = new Sequence
{
    Activities =
     {
         new WriteLine
         {
             Text = "Starting the workflow."
         },
         new Delay
         {
             Duration = TimeSpan.FromSeconds(5)
         },
         new WriteLine
         {
             Text = "Ending the workflow."
         }
     }
};

// Create a WorkflowApplication instance.
WorkflowApplication wfApp = new WorkflowApplication(wf);

// Subscribe to any desired workflow lifecycle events.
wfApp.Completed = delegate(WorkflowApplicationCompletedEventArgs e)
{
    if (e.CompletionState == ActivityInstanceState.Faulted)
    {
        Console.WriteLine("Workflow {0} Terminated.", e.InstanceId);
        Console.WriteLine("Exception: {0}\n{1}",
            e.TerminationException.GetType().FullName,
            e.TerminationException.Message);
    }
    else if (e.CompletionState == ActivityInstanceState.Canceled)
    {
        Console.WriteLine("Workflow {0} Canceled.", e.InstanceId);
    }
    else
    {
        Console.WriteLine("Workflow {0} Completed.", e.InstanceId);
    }
};

// Run the workflow.
wfApp.Run();

Thread.Sleep(TimeSpan.FromSeconds(1));

wfApp.Cancel();

Комментарии

Этот метод планирует отмену экземпляра рабочего процесса. Чтобы получать уведомления о завершении отмены, используйте Completed обработчик.

По умолчанию операция отмены должна завершиться в течение 30 секунд или TimeoutException возникает.

Применяется к

Cancel(TimeSpan)

Отменяет экземпляр рабочего процесса с помощью указанного интервала времени ожидания.

public:
 void Cancel(TimeSpan timeout);
public void Cancel(TimeSpan timeout);
member this.Cancel : TimeSpan -> unit
Public Sub Cancel (timeout As TimeSpan)

Параметры

timeout
TimeSpan

Интервал, в котором операция отмены должна завершиться до отмены операции, и TimeoutException создается исключение.

Примеры

В следующем примере размещен рабочий процесс с помощью WorkflowApplication. WorkflowApplication Экземпляр создается с помощью указанного определения рабочего процесса, обрабатываются требуемые события жизненного цикла рабочего процесса, а рабочий процесс вызывается с вызовомRun. После запуска Cancel рабочего процесса вызывается. При отмене рабочего процесса в консоли отображаются следующие выходные данные.

Starting the workflow.
Workflow bcce00c2-d323-42c2-8c25-19ff0c4b6dac Idle.
Workflow bcce00c2-d323-42c2-8c25-19ff0c4b6dac Canceled
Workflow bcce00c2-d323-42c2-8c25-19ff0c4b6dac Unloaded.
Activity wf = new Sequence
{
    Activities =
     {
         new WriteLine
         {
             Text = "Starting the workflow."
         },
         new Delay
         {
             Duration = TimeSpan.FromSeconds(5)
         },
         new WriteLine
         {
             Text = "Ending the workflow."
         }
     }
};

// Create a WorkflowApplication instance.
WorkflowApplication wfApp = new WorkflowApplication(wf);

// Subscribe to any desired workflow lifecycle events.
wfApp.Completed = delegate(WorkflowApplicationCompletedEventArgs e)
{
    if (e.CompletionState == ActivityInstanceState.Faulted)
    {
        Console.WriteLine("Workflow {0} Terminated.", e.InstanceId);
        Console.WriteLine("Exception: {0}\n{1}",
            e.TerminationException.GetType().FullName,
            e.TerminationException.Message);
    }
    else if (e.CompletionState == ActivityInstanceState.Canceled)
    {
        Console.WriteLine("Workflow {0} Canceled.", e.InstanceId);
    }
    else
    {
        Console.WriteLine("Workflow {0} Completed.", e.InstanceId);
    }
};

// Run the workflow.
wfApp.Run();

Thread.Sleep(TimeSpan.FromSeconds(1));

wfApp.Cancel();

Комментарии

Этот метод планирует отмену экземпляра рабочего процесса. Чтобы получать уведомления о завершении отмены, используйте Completed обработчик.

Применяется к