¿Es seguro este uso del hilo Parallel.ForEach ()?
Esencialmente, estoy trabajando con esto:
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 es unaList<String>
objeto. LosForEach()
a instrucción @ procesa un poco cada valor, actualiza la interfaz de usuario y agrega el resultado a laoutput
List
. ¿Hay algo inherentemente malo en esto?
Notas:
l orden de salida essin importanciActualizar
De acuerdo con los comentarios que recibí, agregué un manuallock
aloutput.Add
, así como al código de actualización de la interfaz de usuario.