Aracılığıyla paylaş


WorkflowApplication.Cancel Yöntem

Tanım

İş 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.

Şunlara uygulanır