WorkflowInvoker.CancelAsync(Object) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
指定された userState
によって呼び出されたワークフローを取り消そうとします。
public:
void CancelAsync(System::Object ^ userState);
public void CancelAsync (object userState);
member this.CancelAsync : obj -> unit
Public Sub CancelAsync (userState As Object)
パラメーター
- userState
- Object
ワークフローを取り消すためのトークン。
例
次の例は、LongRunningDiceRoll
アクティビティで構成されるワークフローを呼び出します。 LongRunningDiceRoll
アクティビティには、サイコロ振り操作の結果を表す 2 つの出力引数があります。 ワークフローが呼び出されると、ホストはワークフローを取り消そうとします。
public sealed class LongRunningDiceRoll : Activity
{
public OutArgument<int> D1 { get; set; }
public OutArgument<int> D2 { get; set; }
public LongRunningDiceRoll()
{
this.Implementation = () => new Sequence
{
Activities =
{
new WriteLine
{
Text = "Rolling the dice for 5 seconds."
},
new Delay
{
Duration = TimeSpan.FromSeconds(5)
},
new DiceRoll
{
D1 = new OutArgument<int>(env => this.D1.Get(env)),
D2 = new OutArgument<int>(env => this.D2.Get(env))
}
}
};
}
}
AutoResetEvent syncEvent = new AutoResetEvent(false);
WorkflowInvoker invoker = new WorkflowInvoker(new LongRunningDiceRoll());
invoker.InvokeCompleted += delegate(object sender, InvokeCompletedEventArgs args)
{
if (args.Cancelled == true)
{
Console.WriteLine("The workflow was cancelled.");
}
else if (args.Error != null)
{
Console.WriteLine("Exception: {0}\n{1}",
args.Error.GetType().FullName,
args.Error.Message);
}
else
{
Console.WriteLine("The two dice are {0} and {1}.",
args.Outputs["D1"], args.Outputs["D2"]);
}
syncEvent.Set();
};
string userState = "CancelAsync Example";
invoker.InvokeAsync(userState);
Console.WriteLine("Waiting for the workflow to complete.");
Thread.Sleep(TimeSpan.FromSeconds(1));
Console.WriteLine("Attempting to cancel the workflow.");
invoker.CancelAsync(userState);
// Wait for the workflow to complete.
syncEvent.WaitOne();
Console.WriteLine("The workflow is either completed or cancelled.");
注釈
取り消すことができるのは、InvokeAsync パラメーターを受け取る、userState
オーバーロードのいずれかによって呼び出されるワークフローだけです。
取り消しが成功した場合、CancelledハンドラーにInvokeCompleted渡される のInvokeCompletedEventArgsプロパティは にtrue
設定されます。それ以外の場合は にfalse
設定されます。
適用対象
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET