我有下面的代碼: -有了這個.NET事件,可以通過這個IList實例嗎?
while (....)
{
var foo = DoTheFooShakeShakeShake(..);
foos.Add(foo); // foos is an IList<Foo>, btw and is new'd, above.
if (foos.Count % 100 == 0)
{
var e = new CustomFooEventArgs { UserId = whatever, Foos = foos };
OnFooPewPew(this, e);
foos.Clear();
}
}
// We still might have some foo's left over.. so send em off also.
// Excuse the woeful var names, below.
var e2 = new CustomFooEventArgs { UserId = whatever, Foos = foos };
OnFooPewPew(this, e2);
所以,我抓住所有的foo替換了一會兒/循環狀態。然後,每一百美元我都會發起一個事件,它將foo的列表傳遞給訂閱者。然後我清除這個foos列表。一旦循環完成,我然後將任何剩餘的foo發送給訂閱者。
所以 - 如果我點燃一個事件,其中包含foo的列表...然後我清除該列表..這是否意味着訂戶可能獲得該列表,現在是空的?我是否應該通過列表的COPY ...然後清除原始列表?
可變的收藏...肆虐...這是真的... – sloth 2010-09-23 08:08:34