1

2 つの単純なタスク (t1、t2) と 1 つのバックグラウンド タスク (t3) の 3 つのスタートアップ タスクがあります。t3 はバックグラウンド タスクであり、タスク t2 によって設定されたいくつかの環境変数を使用するため、t1、t2 は順番に実行する必要があります。

バックグラウンド タスクの実行方法に疑問がありますか? それらはロールのスタートアップから開始しますか、それともスタートアップ タスクのリストに入るとすぐに実行を開始しますか。

元。csdef ファイルでタスクの順序を (t3,t1,t2) として定義すると、最初に t3 がバックグラウンドで実行を開始し、次に t1、t2 が完了してからロールの起動フェーズが開始されます ---> この場合環境変数が設定される前に読み取ることができます

また

バックグラウンド タスクである t3 は、すべての単純なタスクが完了するまで開始されず、ロールの開始とともに開始されます

編集:csdefに表示される順序で実行されることがわかりました

今、私は別の問題に直面しています。t2 でいくつかの環境変数をマシン レベルで設定し、t3 でプロセス レベルでそれらを読み取っています。t3 はこれらの変数を読み取ることができる場合もありますが、null 値を読み取る場合もあります。

一般的に:マシンのすべての環境変数は、各プロセスで自動的に使用可能ですか?

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 に答える