1
5
忘记清除吧,事实上你正在改变列表,这会给订阅你的事件的对象带来巨大的破坏。 如果它们保留返回的列表 ,您将随时更改添加到列表中的数据 清除它。 你 ,因为它们可以改变列表并影响您自己的进程。
如果这不是你想要的行为(我不认为是这样),你甚至不想发送一个副本,而是一个
|
2
2
但是,您应该避免传递列表本身,您应该传递一个副本。否则,事件订阅者可以保留对列表的引用,并以不可预知的方式处理它。。。 |
3
2
假设您可以控制所有订阅服务器,并且只在一个线程上工作,是的,这很好。否则,如果您无法控制订阅者(谁知道他们会做什么?)或者使用多个线程处理已发送的集合,则应考虑发送该集合的副本。 |
4
1
我更愿意这样做的评论,但没有声誉:-)
Anthony's answer
在你无法控制接收者的情况下,是为了确保你分发的列表副本是一个
至于
Thomas' answer
,没有什么可以阻止事件接收器使用
|
Emopusta · 从后端到前端的图像路径不工作 2 年前 |
Asdrubal Hernandez · Linq查询特定数组索引出错 2 年前 |
Niyazi Babayev · 如何在表达式中动态应用表达式? 2 年前 |
Dansih · .Net核心自定义身份验证方案 2 年前 |
lolorekkk · 面板插入。NET WinForm 2 年前 |