在c#中操作内存的问题

lovefootball 2005-04-22 11:40:13
我现在想解决这样一个问题:
我要根据一定的格式解析硬盘上的特殊文件,我想把解析出来的信息,比如文件名、信息、解析时间等等保存到内存中,在资源管理器中再遇到这个文件的时候就可以从内存中读取相应的信息,以便提高访问速度。同时读取信息的时候要更新内存中这个文件的解析时间,内存中保留一定数量的记录,超过这个数量的时候,就删去解析时间最早的记录,不知道我表达清楚了没有?这个是不是得用MemoryStream来做啊?请高手指点,谢谢~~~~~~~~~~~
...全文
249 17 打赏 收藏 转发到动态 举报
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
  • 打赏
  • 举报
回复
在内存中放个类型化的数据集

111,098

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧