问题描述
来自BOTR的样本: BOTR Documentation
#include "frames.h"
{
MethodTable *pMT = g_pObjectClass->getmethodTable();
//RIGHT
OBJECTREF a = AllocateObject(pMT);
GCPROTECT_BEGIN(a);
OBJECTREF b = AllocateObject(pMT);
DoSomething (a,b);
GCPROTECT_END();
}
我的问题是: 如果紧接在OBJECTREF之后b = AllocateObject(pMT);另一个线程导致GC,b无效。 真的吗?或由于不同线程的分配上下文不同,所以不会发生这种情况。
每个小对象堆中始终只有一个短暂段,即gen0和gen1所在的地方
这怎么可能?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)