执行完后 Cache["**"]指向的 dt 还存不存在?? (cache指向的内存存放的数据还在)
或者说 再次掉用 Cache["**"] 能否获取到 dt数据 完全可以
{
Cache["**"] = dt;
//这里dt还存在
}
//这里dt不存在了
如果再次 DataTable dt2 = (DataTable)Cache["**"]
dt2 能获取到数据么?
@生活是平淡的: 可以的,cache是保存到整个应用程序域中的
可以的,cache是保存到整个应用程序域中的
using() {
// 作用域内生效
string a = "a";
}
// 失效
a;
dt虽然存在Cache里面,但是已经被销毁了,因为离开了using作用域的dt,被默认执行过了Dispose方法,内部被释放了,不可再使用。
dt是不存在的,已经被释放掉了,但是数据已经放到Cache中了,Cache被存放在整个应用程序域中,所以仍然可以使用dt中的数据。
想知道这个数据是已经被GC回收了,还是只是标记可以回收.cache中使用到了这里是复制了一个对象还是只是指向了原来的datetable 地址
@xuchengzone: 在using外,dt对象已经被释放了