c# - 尽管数据表存储在缓存中,但每次使用后是否都必须调用 dispose?

标签 c# asp.net caching datatable dispose

简单案例:

我将数据表放入缓存

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/

相关文章:

c# - 枚举的 DropDownList 问题

用于 javascript 和 css 的 PHP 内容缓存

javascript - 离线优先 Web 应用程序中的缓存无效化

c# - Xamarin SignaturePadView GetImage Android 黑色背景

C#:IFormattable、IFormatProvider 和 ICustomFormatter 之间的连接,以及何时使用什么

C# 数据 GridView

python - 在 django 中需要帮助与 memcached 和 friend 一起进行中级/高级缓存

c# - 扩展现有接口(interface)

asp.net - 使用登录控件登录应用程序后重定向到default.aspx而不是 "xxx.aspx"

asp.net - 如何从 Control 而不是 UserControl 继承?