1
7
不,你不能那样做。“event”实际上只是一些访问器方法。假设您是指支持委托,那将是非常糟糕的-委托是不可变的:每次添加/删除订阅服务器时,您都会得到一个 不同的 代表。
实际上,4.0编译器现在可以使用
在您的示例中,
—— 更新:您的示例显示了C 4.0之前访问类似字段的事件所必需的代码。 里面 类型直接与字段对话:不尊重常规字段(如事件锁定)。这在C 4.0中被更改;现在可以(在C 4.0中) 安全地 将其重新写为:
然后遵循所有正确的行为。 |
2
2
任何私有引用类型成员都将执行该作业。只要它是私有的,永远不会被重新分配。它会使委托对象退出运行, 一定地 不希望仅仅因为不受控制的客户机代码分配了一个事件处理程序而导致锁无法完成其工作。非常难调试。 使用做其他工作的私有成员并不能很好地扩展。如果发现重构或调试时需要锁定另一个代码区域,则需要找到另一个私有成员。这就是事情很快就会变坏的地方:你可以选择 相同的 又是私人会员。死锁敲门。 如果将锁对象专用于需要保护的特定共享变量集,则不会发生这种情况。你也可以给它起个好名字。 |
3
1
建议锁定一个私有静态字段,因为这样可以确保试图并行访问该锁的多个线程将被阻止。锁定类本身的实例(
|
a a · 为什么在这个可重入锁示例中需要引用计数? 2 年前 |
JohnLBevan · 为什么原子语句上需要锁提示? 6 年前 |
Jay Wang · 生产者/消费者实施:陷入消费者循环 6 年前 |
Andremoniy · 悲观写入是否锁定整个表? 6 年前 |
Marcus Cemes · 选择。。。用于更新在提交后选择旧数据 6 年前 |
Ins0maniac · Rails,锁定数据库中的记录 6 年前 |