社区
C#
帖子详情
在c#中操作内存的问题
lovefootball
2005-04-22 11:40:13
我现在想解决这样一个问题:
我要根据一定的格式解析硬盘上的特殊文件,我想把解析出来的信息,比如文件名、信息、解析时间等等保存到内存中,在资源管理器中再遇到这个文件的时候就可以从内存中读取相应的信息,以便提高访问速度。同时读取信息的时候要更新内存中这个文件的解析时间,内存中保留一定数量的记录,超过这个数量的时候,就删去解析时间最早的记录,不知道我表达清楚了没有?这个是不是得用MemoryStream来做啊?请高手指点,谢谢~~~~~~~~~~~
...全文
250
17
打赏
收藏
在c#中操作内存的问题
我现在想解决这样一个问题: 我要根据一定的格式解析硬盘上的特殊文件,我想把解析出来的信息,比如文件名、信息、解析时间等等保存到内存中,在资源管理器中再遇到这个文件的时候就可以从内存中读取相应的信息,以便提高访问速度。同时读取信息的时候要更新内存中这个文件的解析时间,内存中保留一定数量的记录,超过这个数量的时候,就删去解析时间最早的记录,不知道我表达清楚了没有?这个是不是得用MemoryStream来做啊?请高手指点,谢谢~~~~~~~~~~~
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lovefootball
2005-04-26
打赏
举报
回复
up~~~~~~~~~~
zhangqiushui
2005-04-23
打赏
举报
回复
帮顶
evaELLIS
2005-04-23
打赏
举报
回复
http://www.dotnetjunkies.com/Tutorial/A4ED5FD6-D385-4475-A357-27CF43A78205.dcik
wjcking
2005-04-23
打赏
举报
回复
up
lovefootball
2005-04-23
打赏
举报
回复
to saucer(思归)
我的是winform的程序,我现在做了一个静态的hashtable,如果有就从hashtable中取,如果没有就解析文件,并添加到hashtable,速度并没有改变多少。
现在如果是1千多个文件的话,稍微有点刷屏的感觉,速度比winamp歌放的多的时候显示时间长度的那种速度稍微快一些。我现在想当hashtable中有数据的时候,做到像windows那样快,就是做到没有刷屏的感觉,不知道能不能做到。另外windows是怎么处理文件的属性的?他的速度为什么那么快啊?
lovefootball
2005-04-22
打赏
举报
回复
up~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
saucer
2005-04-22
打赏
举报
回复
what kind of program? winform or webform?
for webform, you could use Cache class, it allows you specify a timeout to expire and also you can use CacheDependency class to add a depenpency on the file, so that if the file changes, you can refresh those information
see (it is for database, but the idea is same)
http://www.dotnetjunkies.com/Tutorial/A4ED5FD6-D385-4475-A357-27CF43A78205.dcik
>>>内存中保留一定数量的记录,超过这个数量的时候,就删去解析时间最早的记录
you need to write your own manager class, probably derived from a CollectionBase or Hashtable
lovefootball
2005-04-22
打赏
举报
回复
UP
JasonHeung
2005-04-22
打赏
举报
回复
用类或者结构数组就可以了。
hchxxzx
2005-04-22
打赏
举报
回复
CS的东西我也不太懂.
提供一个思路
在系统中,初始化一个静态的DataTable,多列,分别存放你要放的信息,并在初始化时,从硬盘上按顺序读取若干条记录,存入此表中.
在需要读取硬盘文件时,先到此表中访问一下,如果表中没有,则按此表的索引号,将最后一条记录删除,同时插入当前文件信息在最前面.
lovefootball
2005-04-22
打赏
举报
回复
to zhzuo(秋枫)
类型化的数据集能给一点代码么?
marvelstack
2005-04-22
打赏
举报
回复
你建立一个类型化的数据集,里面可以建一些表,用来保存相应的数据,
其实就相当于处理数据库一样,修改也就是直接修改这项数据表里面的数据,要保存到外面就WriteXml也比较方便。
当然数据表字段建成什么样就要看你自己需要那些数据了。其他操作就是在用Ado.net了。
lovefootball
2005-04-22
打赏
举报
回复
to ddarkelf(黑暗精灵)
你那个是啥意思啊?
ddarkelf
2005-04-22
打赏
举报
回复
设为static的变量
if( xxx == null )
//读取
else
//使用
lyglxj
2005-04-22
打赏
举报
回复
up
lovefootball
2005-04-22
打赏
举报
回复
to zhzuo(秋枫)
具体的怎么实现啊?
麻烦你说的详细点好么?
marvelstack
2005-04-22
打赏
举报
回复
在内存中放个类型化的数据集
C#
内存
修改器(仿CE)
好吧 我承认这东西效率真不咋地 也别喷我的代码 我承认我的代码写的也不咋地 总之 有个思路就行了 是我仿照 CE 的界面做的 不得不说 CE 的搜索速度真的很快 还有就是 这程序 可能存在许多潜在的bug 比如
内存
溢出 不过我能知道的或者知道怎么解决的
问题
我已近解决了 总之 这代码仅供参考
C#
精髓.PDF
C#
精髓(美)阿尔巴哈里(Albahari, B.)等编著;刘基诚译
中
国电力出版社,2001 文字版PDF,字体永远清晰。可全书关键字查找,方便随时查阅。
C#
常用类库(100多个)
包含文件、网络、http、多线程、控件、office、IO、JSON、压缩文件、文本字符串、正则表达式、HTML、邮件、系统、数据库、加密解密等
操作
类
类似QQ的全套聊天系统[极品] 源码
类似QQ的全套聊天系统[极品] 源码
C#
中
直接
操作
内存
的方法
我们在使用
c#
托管代码时,
内存
地址和GC回收不是我们关心的,CLR已经给我们进行了暗箱
操作
。但是有时候我们想使用类似C语言那种方式直接对
内存
进行
操作
,或者涉及到非托管代码的调用,此时就需要保护
内存
地址,防止GC垃圾回收机制将
内存
收回。因为一旦
内存
被CLR回收掉,直接造成非托管代码再次访问这块
内存
时失效,导致程序崩溃。
C#
中
直接
操作
内存
主要有以下三种方法: 1、GCHandle。 ...
C#
111,098
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章