Язык

WorkflowApplication.Terminate Метод

Определение

Завершает экземпляр рабочего процесса.

Перегрузки

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

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

Terminate(String)

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

Terminate(Exception, TimeSpan)

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

Terminate(String, TimeSpan)

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

Terminate(Exception)

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

public:
 void Terminate(Exception ^ reason);
public void Terminate(Exception reason);
member this.Terminate : Exception -> unit
Public Sub Terminate (reason As Exception)

Параметры

reason
Exception

Причина прекращения экземпляра рабочего процесса.

Примеры

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

Starting the workflow.
Workflow e6b33409-f010-49f1-82ce-56f8baabe5e5 Terminated.
Exception: System.ApplicationException
Terminating the workflow.
Workflow e6b33409-f010-49f1-82ce-56f8baabe5e5 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);

        // Outputs can be retrieved from the Outputs dictionary,
        // keyed by argument name.
        // Console.WriteLine("The winner is {0}.", e.Outputs["Winner"]);
    }
};

wfApp.Unloaded = delegate(WorkflowApplicationEventArgs e)
{
    Console.WriteLine("Workflow {0} unloaded.", e.InstanceId);
};

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

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

wfApp.Terminate(new ApplicationException("Terminating the workflow."));

Комментарии

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

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

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

Terminate(String)

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

public:
 void Terminate(System::String ^ reason);
public void Terminate(string reason);
member this.Terminate : string -> unit
Public Sub Terminate (reason As String)

Параметры

reason
String

Причина прекращения экземпляра рабочего процесса.

Примеры

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

Starting the workflow.
Workflow f87c6f91-4fe4-40b9-b7cb-4f1bd071bf84 Terminated.
Exception: System.Activities.WorkflowApplicationTerminatedException
Terminating the workflow.
Workflow f87c6f91-4fe4-40b9-b7cb-4f1bd071bf84 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);

        // Outputs can be retrieved from the Outputs dictionary,
        // keyed by argument name.
        // Console.WriteLine("The winner is {0}.", e.Outputs["Winner"]);
    }
};

wfApp.Unloaded = delegate(WorkflowApplicationEventArgs e)
{
    Console.WriteLine("Workflow {0} unloaded.", e.InstanceId);
};

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

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

wfApp.Terminate("Terminating the workflow.");

Комментарии

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

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

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

Terminate(Exception, TimeSpan)

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

public:
 void Terminate(Exception ^ reason, TimeSpan timeout);
public void Terminate(Exception reason, TimeSpan timeout);
member this.Terminate : Exception * TimeSpan -> unit
Public Sub Terminate (reason As Exception, timeout As TimeSpan)

Параметры

reason
Exception

Причина прекращения экземпляра рабочего процесса.

timeout
TimeSpan

Интервал, в котором Terminate(Exception, TimeSpan) операция должна завершиться до отмены операции и TimeoutException возникает.

Примеры

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

Starting the workflow.
Workflow de28efe5-9057-472b-8d95-899c249893c5 Terminated.
Exception: System.ApplicationException
Terminating the workflow.
Workflow de28efe5-9057-472b-8d95-899c249893c5 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);

        // Outputs can be retrieved from the Outputs dictionary,
        // keyed by argument name.
        // Console.WriteLine("The winner is {0}.", e.Outputs["Winner"]);
    }
};

wfApp.Unloaded = delegate(WorkflowApplicationEventArgs e)
{
    Console.WriteLine("Workflow {0} unloaded.", e.InstanceId);
};

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

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

wfApp.Terminate(new ApplicationException("Terminating the workflow."),
    TimeSpan.FromSeconds(15));

Комментарии

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

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

Terminate(String, TimeSpan)

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

public:
 void Terminate(System::String ^ reason, TimeSpan timeout);
public void Terminate(string reason, TimeSpan timeout);
member this.Terminate : string * TimeSpan -> unit
Public Sub Terminate (reason As String, timeout As TimeSpan)

Параметры

reason
String

Причина прекращения экземпляра рабочего процесса.

timeout
TimeSpan

Интервал, в котором Terminate(String, TimeSpan) операция должна завершиться до отмены операции и TimeoutException возникает.

Примеры

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

Starting the workflow.
Workflow 2897d2ef-377e-4224-ae93-5c19b38f487c Terminated.
Exception: System.Activities.WorkflowApplicationTerminatedException
Terminating the workflow.
Workflow 2897d2ef-377e-4224-ae93-5c19b38f487c 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);

        // Outputs can be retrieved from the Outputs dictionary,
        // keyed by argument name.
        // Console.WriteLine("The winner is {0}.", e.Outputs["Winner"]);
    }
};

wfApp.Unloaded = delegate(WorkflowApplicationEventArgs e)
{
    Console.WriteLine("Workflow {0} unloaded.", e.InstanceId);
};

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

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

wfApp.Terminate("Terminating the workflow.", TimeSpan.FromSeconds(15));

Комментарии

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

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