WorkflowApplication.Cancel Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
İş akışı örneğini iptal eder.
Aşırı Yüklemeler
Cancel() |
İş akışı örneğini iptal eder. |
Cancel(TimeSpan) |
Belirtilen zaman aşımı aralığını kullanarak iş akışı örneğini iptal eder. |
Açıklamalar
Bu yöntem, iş akışı örneğinin iptalini zamanlar. İptal işlemi tamamlandığında bildirim almak için tutamacı Completed kullanın.
Varsayılan olarak, iptal işleminin 30 saniye içinde tamamlanması gerekir veya bir TimeoutException oluşturulur.
Cancel()
İş akışı örneğini iptal eder.
public:
void Cancel();
public void Cancel ();
member this.Cancel : unit -> unit
Public Sub Cancel ()
Örnekler
Aşağıdaki örnek kullanarak WorkflowApplicationbir iş akışı barındırıyor. Örnek WorkflowApplication , belirtilen iş akışı tanımı kullanılarak oluşturulur, istenen iş akışı yaşam döngüsü olayları işlenir ve iş akışı çağrısıyla Runçağrılır. İş akışı başlatıldıktan Cancel sonra çağrılır. İş akışı iptal edildiğinde konsolda aşağıdaki çıkış görüntülenir.
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();
Açıklamalar
Bu yöntem, iş akışı örneğinin iptalini zamanlar. İptal işlemi tamamlandığında bildirim almak için işleyicisini Completed kullanın.
Varsayılan olarak, iptal işleminin 30 saniye içinde tamamlanması gerekir veya bir TimeoutException oluşturulur.
Şunlara uygulanır
Cancel(TimeSpan)
Belirtilen zaman aşımı aralığını kullanarak iş akışı örneğini iptal eder.
public:
void Cancel(TimeSpan timeout);
public void Cancel (TimeSpan timeout);
member this.Cancel : TimeSpan -> unit
Public Sub Cancel (timeout As TimeSpan)
Parametreler
- timeout
- TimeSpan
İşlem iptal edilmeden ve bir TimeoutException atmadan önce iptal işleminin tamamlanması gereken aralık.
Örnekler
Aşağıdaki örnek kullanarak WorkflowApplicationbir iş akışı barındırıyor. Örnek WorkflowApplication , belirtilen iş akışı tanımı kullanılarak oluşturulur, istenen iş akışı yaşam döngüsü olayları işlenir ve iş akışı çağrısıyla Runçağrılır. İş akışı başlatıldıktan Cancel sonra çağrılır. İş akışı iptal edildiğinde konsolda aşağıdaki çıkış görüntülenir.
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();
Açıklamalar
Bu yöntem, iş akışı örneğinin iptalini zamanlar. İptal işlemi tamamlandığında bildirim almak için işleyicisini Completed kullanın.