|
|
1
23
我觉得你把事情弄得比实际需要的更复杂了。你只需要记住两件事:
这意味着如果你写:
然后
注意,在许多情况下,
假设它是一个实例方法。 有 不 仅由于事件订阅而导致的反向关系-换句话说,订阅服务器不会使发布服务器保持活动状态。 my article on events and delegates 顺便说一下,想了解更多信息。 |
|
|
2
3
阻止垃圾收集的其余引用还有一个效果,可能很明显,但在这个线程中还没有说明;附加的事件处理程序也将被执行。 我已经经历过好几次了。一个是当我们有一个应用程序,它运行的时间越长,速度就越慢。应用程序通过加载用户控件以动态方式创建用户界面。容器使用户控件订阅环境中的某些事件,其中一个在控件“卸载”时没有取消订阅。 一段时间后,这导致每次引发特定事件时都会执行大量事件侦听器。当然,当大量“睡眠”实例突然醒来并试图对同一输入采取行动时,这会导致严重的竞争状况。 简言之如果您编写代码来连接事件侦听器;确保在不再需要时尽快发布。我几乎敢保证,在将来的某个时候,它至少会让你免于一次头痛。 |
|
|
3
1
在这个场景中,当您处理一个B时,仍然会有一个从
当然,如果事件订阅行如下所示,您可能会遇到同样的问题:
|
|
|
A B · C#Excel自动调整列避免长文本时出错 1 年前 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 1 年前 |
|
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 1 年前 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 1 年前 |