2
|
Ian Ringrose · 技术社区 · 14 年前 |
![]() |
1
0
自从
(别忘了
you can only trust
我想解决方法可能是对类似
|
![]() |
2
0
这就是问题所在 我 有: 当对System.Timers.Timer调用Dispose()时 可以 在Win32计时器被销毁之前返回。因此,在非托管空间中仍有一个根目录保持计时器活动。时间有一个事件处理程序,它使我的对象保持活动状态。 由于这是非常及时的相关,大部分时间计时器将得到GCed和我的对象。但是有时(比如说10次中的1次)计时器会保持活动状态,我的对象也会保持活动状态。 短时间的睡眠()会使我的测试100%通过,所以在处理事件之前取消计时器上的挂钩,这样计时器就无法使我的对象保持活动状态。 |
![]() |
3
-2
如果WeakReference的IsLive属性返回false,则表示该引用是kaput,并且将永远是kaput,无需检查其值。如果返回true,则表示引用 可以 活着,但除非你试图把它的价值转化为一个有力的参考,否则你不会真正知道。一个人不应该依赖于一个特定程度的及时性而无效的会议,也不应该接受它的价值,除非你真的对它感兴趣。如果您正在执行诸如清理WeakReferences列表、删除已死亡的WeakReferences之类的操作,则IsAlive属性允许您标识已完全死亡的WeakReferences,而不创建对那些可能符合垃圾收集条件的WeakReferences的强引用。对于列表中的任何弱引用何时有资格进行清理,没有特别的保证,但是(1)在存在内存压力的情况下,这样的资格将更及时;(2)在没有内存压力的情况下,时间性通常不会成为问题。 |
|
user2414250 · 如何判断资源是否处于非托管状态? 7 年前 |
![]() |
J.Lucas · 处置方法的重要性(libgdx) 7 年前 |
![]() |
1iveowl Diego Sanchez · 异步一次性创建 8 年前 |
![]() |
Czeshirecat · 在更改控件的字体时,是否应丢弃旧字体? 10 年前 |
![]() |
user2813889 · 从列表中删除对象后,我应该将其更改为Null吗? 11 年前 |
![]() |
Zerowalker · 如果我在整个跑步过程中都需要一次性物品,该怎么办? 11 年前 |