|
|
1
16
我从CLR团队自己那里发现,这确实不安全-- 除非 您在RCW上分配一个GChandle,而这样做仍然安全(当您第一次获取RCW时)。这样可以确保GC和终结器在需要调用RCW的托管对象完成之前没有对RCW进行合计。
结果在我的
特定的
我的应用程序正在托管CLR本身。所以,它叫mscoree!在终结器线程运行之前,coeeShutdownCom将杀死RCW并导致
但在正常情况下,当clr没有托管自己时,我被告知这应该有效。 |
|
|
2
7
不,从终结器线程访问RCW是不安全的。一旦到达终结器线程,就无法保证RCW仍然存在。它可能位于终结器队列中对象的前面,因此在终结器线程上运行析构函数时释放。 |