错误程序子程序优化

This commit is contained in:
“hsc”
2026-08-07 14:54:01 +08:00
parent 80a2cbd80b
commit 99ac3f2b8d
9 changed files with 261 additions and 149 deletions
+10 -3
View File
@@ -69,11 +69,11 @@ namespace UIShare
tmpParameters.Clear();
TestRoundID = Guid.NewGuid();
}
int initialLoopStackCount = loopStack.Count;
foreach (var item in program.Parameters)
{
tmpParameters.TryAdd(item.ID, item);
}
while (index < program.ErrorStepCollection.Count)
{
if (_disposed || cancellationToken.IsCancellationRequested)
@@ -188,14 +188,16 @@ namespace UIShare
Scope = _systemConfig.Title,
Action = NavigateAction.Enter,
SubProgram = step.SubProgram,
StepName = step.Name
StepName = step.Name,
IsErrorProgram = true
});
stepSuccess = await ExecuteSteps(step.SubProgram, depth + 1, cancellationToken);
// 发布退出子程序导航事件
_eventAggregator.GetEvent<SubProgramNavigateEvent>().Publish(new SubProgramNavigatePayload
{
Scope = _systemConfig.Title,
Action = NavigateAction.Exit
Action = NavigateAction.Exit,
IsErrorProgram = true
});
UpdateCurrentStepResult(step, true, stepSuccess, depth);
if (SubSingleStep)
@@ -238,7 +240,12 @@ namespace UIShare
await SaveStepRecordAsync(step, depth, true);
}
}
bool finalResult = loopStack.Count == initialLoopStackCount && stepSuccess;
if (depth > 0) // 子程序
{
return finalResult;
}
return loopStack.Count == 0 && stepSuccess;
}
public async Task<bool> ExecuteSteps(ProgramVM program, int depth = 0, CancellationToken cancellationToken = default)