我有下面的代码: -有了这个.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