情景:在一個循環的異步任務執行包含在程序改變參數的方法繼續:將更改值的參數傳遞給任務 - 行爲?
while(this._variable < 100)
{
this._variable++;
var aTask = Task.Factory.StartNew(() =>
{
aList.add(this._variable);
update(this._savePoint);
});
}
如果循環的運行速度比完成任務快,將在列表中添加變量的當前值或是本地保存的變量並添加了原始值?
Jon Skeet檢查了這個:http://csharpindepth.com/Articles/Chapter5/Closures.aspx – 2012-04-16 18:51:55
+1優秀的問題! – nawfal 2012-04-16 19:25:28