Esse uso do thread Parallel.ForEach () é seguro?
Essencialmente, estou trabalhando com isso:
var data = input.AsParallel();
List<String> output = new List<String>();
Parallel.ForEach<String>(data, line => {
String outputLine = "";
// ** Do something with "line" and store result in "outputLine" **
// Additionally, there are some this.Invoke statements for updating UI
output.Add(outputLine);
});
Input é umList<String>
objeto. OForEach()
instrução @ faz algum processamento em cada valor, atualiza a interface do usuário e adiciona o resultado aooutput
List
. Existe algo inerentemente errado nisso?
Notas
O pedido de saída ésem importânciAtualizar
Com base nos comentários que recebi, adicionei um manuallock
aooutput.Add
, bem como para o código de atualização da interface do usuári