|
2
|
| Nicolas Dorier · 技术社区 · 17 年前 |
|
|
1
2
一种选择是仅对调试生成使用终结器。不要让它只是“很好地”关闭线程:让它非常显著地记录警告。这将有助于隔离忘记正确处理对象的位置。
您的调度员通常会非常频繁地接收事件吗?如果它长时间没有收到任何事件,您是否可以让它至少记录一条警告?
一个相当糟糕的选择是使调度器对一次性对象具有弱引用。它可以定期检查对象是否已被垃圾收集(使用
|
|
|
2
1
“Dispose+Destructor”解决方案在我看来很好。正如Jon所说,您可以使用一些技巧来检测是否错过了Dispose调用,但是在终结器调用时停止线程将是一种额外的保护措施。 顺便说一下,线程是非托管资源。 |
|
|
3
1
here . 显然,如果您正在编写一个可重用类或库供其他程序员使用,您不能假设Dispose方法总是被调用,因此最好实现一个终结器:
看来不是这样 那个
您可以通过保护最后2个版本来防止它们被编译到版本中:
|