![]() |
1
39
一个好方法是从TcpClient派生并重写Disposing(bool)方法:
如果另一个代码创建了实例,这将不起作用。然后,您必须做一些绝望的事情,比如使用反射来获取私有m\u CleanedUp成员的值。或者捕捉异常。 坦率地说,没有人认为这会有一个很好的结局。你真的 做 你的 编辑:反射示例:
|
![]() |
2
46
编写Dispose方法的重写实现的解决方案不起作用,因为在调用Dispose方法的线程和访问对象的线程之间存在竞争条件:在检查了假设的IsDisposed属性之后,可以真正地释放对象,同时抛出异常。 this ),用于向每个感兴趣的对象通知处理对象,但根据软件设计,这可能很难计划。 |
![]() |
3
17
如果不确定对象是否已被释放,则应调用
典型的模式
注意检查
|