WorkflowApplication.Cancel 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
取消工作流程實例。
多載
| 名稱 | Description |
|---|---|
| Cancel() |
取消工作流程實例。 |
| Cancel(TimeSpan) |
使用指定的逾時間隔取消工作流程實例。 |
備註
此方法排程工作流程實例的取消。 欲收到取消完成通知,請使用帳號。Completed
預設情況下,取消操作必須在 30 秒內完成,否則會被丟棄 a 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 秒內完成,否則會被丟棄 a 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
取消操作必須完成的時間區間,才能取消並拋出 a 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 。