1

我有 3 个启动任务,两个简单(t1,t2)和一个后台任务(t3)。现在 t1,t2 必须按顺序运行,现在因为 t3 是后台任务,它使用一些由任务 t2 设置的环境变量。

我对后台任务的运行方式有些疑问?他们是从角色启动开始还是在进入启动任务列表时立即开始运行。

前任。如果我在我的csdef文件中将任务的顺序定义为(t3,t1,t2),t3是否会首先在后台开始运行,然后t1,t2将完成,然后角色启动阶段将开始--->在这种情况下我可以在设置之前读取环境变量

或者

t3 作为后台任务将在所有简单任务完成之前不会启动,并且会从角色启动开始

编辑:发现它们按照出现在 csdef 中的顺序运行

现在我遇到了另一个问题,我在机器级别的 t2 中设置了一些环境变量,在 t3 中我在进程级别读取它们,有时 t3 能够读取这些变量,但有时它读取空值

一般来说:机器上的所有环境变量是否自动可用于每个进程?

4

1 回答 1

0

我发现任务按照它们在csdef中定义的顺序运行

如果您在我的csdef中以相同的顺序定义了以下任务

<Task commandLine="t1" executionContext="elevated" taskType="simple" />
<Task commandLine="t2" executionContext="elevated" taskType="simple" />
<Task commandLine="t3" executionContext="elevated" taskType="background"></Task>

所以第一个 t1 将执行,在 t1 完成 t2 和 t2 完成后 t3 将在后台运行,角色启动阶段将并行启动

如果我将订单更改为

<Task commandLine="t3" executionContext="elevated" taskType="background"></Task>
<Task commandLine="t1" executionContext="elevated" taskType="simple" />
<Task commandLine="t2" executionContext="elevated" taskType="simple" />

然后 t3 将在后台运行,t1 和 t2 将并行运行,但按顺序

于 2013-02-27T05:15:38.010 回答