虽然数据表存储在缓存中,但每次使用后是否必须调用dispose?

2 c# asp.net datatable caching dispose

简单案例:

我把一个DataTable放在Cache中

DataTable table = SomeClass.GetTable();
Cache["test"] = table;

then in later calls i use
DataTable table = (DataTable)Cache["test"];
Run Code Online (Sandbox Code Playgroud)

现在的问题是:我应该在每次调用时调用table.dispose(),尽管它存储在Cache中吗?意味着对象总是一样的?或者Cache会每次创建一个副本吗?

谢谢 :)

Cha*_*ana 5

您所做的只是将指针存储在缓存中...实际的"表"仍然在堆上,其中存储了所有.Net引用类型...您没有复制它...缓存中的变量只是采取行动阻止垃圾收集器擦除堆上的对象......

不,你不想在不再需要实际对象之前调用dispose.