Escenario: Una tarea asíncrona en un bucle ejecuta un método que contiene argumentos que cambian a medida que el programa sigue:Pasar argumentos con valores cambiantes a Tarea - ¿Comportamiento?
while(this._variable < 100)
{
this._variable++;
var aTask = Task.Factory.StartNew(() =>
{
aList.add(this._variable);
update(this._savePoint);
});
}
Si el bucle se ejecuta más rápido que las tareas completas, será la lista de agregar el valor actual de la variable o ¿La variable se guarda localmente y se agrega el valor original?
Mira esto por Jon Skeet: http://csharpindepth.com/Articles/Chapter5/Closures.aspx –
+1 excelente pregunta! – nawfal