Update For.cs
This commit is contained in:
parent
1325c3f9c3
commit
520c2d9354
|
|
@ -20,7 +20,7 @@ public class For : Activity
|
|||
[JsonConstructor]
|
||||
public For()
|
||||
{
|
||||
OnSignalReceived<BreakSignal>(OnBreak);
|
||||
OnSignalReceived<BreakSignal>(OnBreakAsync);
|
||||
}
|
||||
|
||||
public For(int start, int end, ForOperator forOperator = ForOperator.LessThanOrEqual) : this()
|
||||
|
|
@ -37,6 +37,8 @@ public class For : Activity
|
|||
[Outbound] public IActivity? Body { get; set; }
|
||||
public Variable<int?> CurrentValue { get; set; } = new();
|
||||
|
||||
protected override bool CompleteImplicitly { get; } = false;
|
||||
|
||||
protected override void Execute(ActivityExecutionContext context)
|
||||
{
|
||||
var iterateNode = Body;
|
||||
|
|
@ -84,8 +86,15 @@ public class For : Activity
|
|||
return ValueTask.CompletedTask;
|
||||
}
|
||||
|
||||
private void OnBreak(BreakSignal signal, SignalContext context)
|
||||
private async ValueTask OnBreakAsync(BreakSignal signal, SignalContext context)
|
||||
{
|
||||
// Prevent bubbling.
|
||||
context.StopPropagation();
|
||||
|
||||
// Remove child activity execution contexts.
|
||||
context.ActivityExecutionContext.RemoveChildren();
|
||||
|
||||
// Mark this activity as completed.
|
||||
await context.ActivityExecutionContext.CompleteActivityAsync();
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue