2013-02-26 92 views
1

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

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

ex。如果我在csdef文件中定义任务(T3,T1,T2)的顺序,并T3将开始在后台运行,再T1,T2将完成,然后作用开始阶段将开始--->在这种情况下,我可以读取环境变量它们被设置

t3之前是一个后台任务将无法启动,直到所有的简单任务都完成,将与角色开始启动

编辑:发现他们为了运行,因为它们出现在csdef

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

一般情况:都是机器上的环境变量自动可用于每个进程或不是?

+0

你可以尝试将当前系统时间记录到一个文本文件时,每个任务开始(时间/ T >> d:\ task1.txt)。这可能会给你一个关于任务计划的暗示。 – Nico 2013-02-26 11:10:14

+0

好吧,我发现任务运行的顺序,并不要紧,无论其因此在上述情况下T3简单,背景或forground任务:) 将开始在后台运行,然后再T1和T2会以平行模式运作,T3 所以我的正在运行的任务顺序必须是T1,T2,T3 – 2013-02-26 14:41:27

+0

也许你应该张贴您的调查结果回答自己的问题...... – Nico 2013-02-26 15:39:40

回答

0

,我发现任务中,他们都在csdef定义

如果u有以下相同的顺序

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

这样一个T1将执行我csdef定义的任务,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将运行在平行的,但为了运行