简单案例:
我将数据表放入缓存
DataTable table = SomeClass.GetTable();
Cache["test"] = table;
then in later calls i use
DataTable table = (DataTable)Cache["test"];
现在的问题是:我应该在每次调用时调用 table.dispose() 吗?尽管它存储在缓存中?意味着对象总是相同的?或者缓存每次都会创建一个副本?
谢谢:)
最佳答案
您所做的只是在缓存中存储一个指针...实际的“表”仍然在堆上,所有.Net引用类型都存储在堆上...您没有复制它... 缓存中的变量只是用于阻止垃圾收集器删除堆上的对象...
不,在不再需要实际对象之前,您不想调用 dispose。
关于c# - 尽管数据表存储在缓存中,但每次使用后是否都必须调用 dispose?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/326335/