PowerShell
0
Вклад в тег
$threadslimit = 8
$collection = @{}
$synccollection = [System.Collections.Hashtable]::Synchronized($collection)
1..1000 | ForEach-Object {
$data = @('some', 'valuable', 'text', 'data')
$synccollection.Add($_, $data)
}
#выводим созданную коллекцию до изменений, просто чтобы можно было сравнить
$synccollection
$keys = @($synccollection.Keys)
$keys | ForEach-Object -Parallel {
$synccollectionscope = $using:synccollection
# Здесь на самом деле какая-то функция, которая возвращает строку
$format = 'Changed data'
# Изменяем одно из полей, напоминаю, по ключам лежат массивы
$synccollectionscope[$_][3] = $format
# Тут вывод чтобы просто отслеживать выполнение скрипта
Write-Output "Data was changed"
} -ThrottleLimit $threadslimit
# Вывод самой коллекции в консоль, чтобы убедиться, что значения поменялись
$synccollection