最近我們開始研究需要很長時間才能完成的腳本。所以我們深入瞭解PowerShell工作流程。閱讀了一些文檔後,我忽略了基本知識。但是,我似乎無法找到爲foreach -parallel
聲明中的每個單獨項目創建[PSCustomObject]
的方法。Foreach-平行對象
某些代碼來解釋:
Workflow Test-Fruit {
foreach -parallel ($I in (0..1)) {
# Create a custom hashtable for this specific object
$Result = [Ordered]@{
Name = $I
Taste = 'Good'
Price = 'Cheap'
}
Parallel {
Sequence {
# Add a custom entry to the hashtable
$Result += @{'Color' = 'Green'}
}
Sequence {
# Add a custom entry to the hashtable
$Result += @{'Fruit' = 'Kiwi'}
}
}
# Generate a PSCustomObject to work with later on
[PSCustomObject]$Result
}
}
Test-Fruit
其中它出錯是從Sequence
塊內增加一個值到$Result
哈希表的一部分。嘗試以下情況下,也仍然失敗:
$WORKFLOW:Result += @{'Fruit' = 'Kiwi'}
這是完全真棒!正是我所期待的。謝謝你,很好的回答! :) – DarkLite1
很高興能幫到你! – Thom
正在寫入$ WORKFLOW:並行操作的結果線程安全嗎?在foreach-parallel模塊運行內聯腳本的情況下,他們似乎都可以嘗試訪問這個變量來同時寫出結果。 –