次の方法で共有


StateMachineWorkflowActivity.CompletedStateName プロパティ

定義

ワークフローの最後の StateActivity を取得または設定します。

public:
 property System::String ^ CompletedStateName { System::String ^ get(); void set(System::String ^ value); };
public string CompletedStateName { get; set; }
member this.CompletedStateName : string with get, set
Public Property CompletedStateName As String

プロパティ値

ワークフローの最後の StateActivity

CompletedStateName プロパティの値を設定する方法を次のコード例に示します。 このコード例は、StateMachineWorkflow.cs ファイルから抜粋した SimpleStateMachineWorkflow SDK サンプルの一部です。 詳細については、「 Simple State Machine」を参照してください。

this.CanModifyActivities = true;
this.setCompletedState = new System.Workflow.Activities.SetStateActivity();
this.code2 = new System.Workflow.Activities.CodeActivity();
this.state1Delay = new System.Workflow.Activities.DelayActivity();
this.setState1 = new System.Workflow.Activities.SetStateActivity();
this.code1 = new System.Workflow.Activities.CodeActivity();
this.startStateDelay = new System.Workflow.Activities.DelayActivity();
this.eventDriven2 = new System.Workflow.Activities.EventDrivenActivity();
this.eventDriven1 = new System.Workflow.Activities.EventDrivenActivity();
this.CompletedState = new System.Workflow.Activities.StateActivity();
this.state1 = new System.Workflow.Activities.StateActivity();
this.StartState = new System.Workflow.Activities.StateActivity();
//
// setCompletedState
//
this.setCompletedState.Name = "setCompletedState";
this.setCompletedState.TargetStateName = "CompletedState";
//
// code2
//
this.code2.Name = "code2";
this.code2.ExecuteCode += new System.EventHandler(this.Code2Handler);
//
// state1Delay
//
this.state1Delay.Name = "state1Delay";
this.state1Delay.TimeoutDuration = System.TimeSpan.Parse("00:00:02");
//
// setState1
//
this.setState1.Name = "setState1";
this.setState1.TargetStateName = "state1";
//
// code1
//
this.code1.Name = "code1";
this.code1.ExecuteCode += new System.EventHandler(this.Code1Handler);
//
// startStateDelay
//
this.startStateDelay.Name = "startStateDelay";
this.startStateDelay.TimeoutDuration = System.TimeSpan.Parse("00:00:05");
//
// eventDriven2
//
this.eventDriven2.Activities.Add(this.state1Delay);
this.eventDriven2.Activities.Add(this.code2);
this.eventDriven2.Activities.Add(this.setCompletedState);
this.eventDriven2.Name = "eventDriven2";
//
// eventDriven1
//
this.eventDriven1.Activities.Add(this.startStateDelay);
this.eventDriven1.Activities.Add(this.code1);
this.eventDriven1.Activities.Add(this.setState1);
this.eventDriven1.Name = "eventDriven1";
//
// CompletedState
//
this.CompletedState.Name = "CompletedState";
Me.CanModifyActivities = True
Me.CompletedState = New System.Workflow.Activities.StateActivity
Me.code2 = New System.Workflow.Activities.CodeActivity
Me.state1Delay = New System.Workflow.Activities.DelayActivity
Me.setState1 = New System.Workflow.Activities.SetStateActivity()
Me.code1 = New System.Workflow.Activities.CodeActivity()
Me.startStateDelay = New System.Workflow.Activities.DelayActivity()
Me.eventDriven2 = New System.Workflow.Activities.EventDrivenActivity()
Me.eventDriven1 = New System.Workflow.Activities.EventDrivenActivity()
Me.CompletedState = New System.Workflow.Activities.StateActivity()
Me.state1 = New System.Workflow.Activities.StateActivity()
Me.StartState = New System.Workflow.Activities.StateActivity()
' 
' setCompletedState
'
Me.setCompletedState.Name = "setCompletedState"
Me.setCompletedState.TargetStateName = "CompletedState"
' 
' code2
' 
Me.code2.Name = "code2"
AddHandler Me.code2.ExecuteCode, AddressOf Me.Code2Handler

' 
' state1Delay
'
Me.state1Delay.Name = "state1Delay"
Me.state1Delay.TimeoutDuration = System.TimeSpan.Parse("00:00:02")
' 
' setState1
' 
Me.setState1.Name = "setState1"
Me.setState1.TargetStateName = "state1"
' 
' code1
' 
Me.code1.Name = "code1"
AddHandler Me.code1.ExecuteCode, AddressOf Me.Code1Handler
' 
' startStateDelay
' 
Me.startStateDelay.Name = "startStateDelay"
Me.startStateDelay.TimeoutDuration = System.TimeSpan.Parse("00:00:05")
' 
' eventDriven2
' 
Me.eventDriven2.Activities.Add(Me.state1Delay)
Me.eventDriven2.Activities.Add(Me.code2)
Me.eventDriven2.Activities.Add(Me.setCompletedState)
Me.eventDriven2.Name = "eventDriven2"
' 
' eventDriven1
' 
Me.eventDriven1.Activities.Add(Me.startStateDelay)
Me.eventDriven1.Activities.Add(Me.code1)
Me.eventDriven1.Activities.Add(Me.setState1)
Me.eventDriven1.Name = "eventDriven1"
' 
' CompletedState
' 
Me.CompletedState.Name = "CompletedState"

注釈

CompletedStateName に状態が変わると、ワークフローの実行が終了します。 CompletedStateName は必須ではありません。 つまり、完了していない StateMachineWorkflowActivity も許されます。 これは、ステート マシン ワークフローがメモリ内で常にアクティブであるという意味ではありません。 StateMachineWorkflowActivity は、イベント待ちの間、アンロードされることがあります。

InitialStateName および CompletedStateName の詳細については、「StateMachineWorkflowActivity」を参照してください。

適用対象