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.