首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

进程理器程序刷新效率有关问题

2013-09-10 
进程理器程序刷新效率问题本帖最后由 Leeroe 于 2013-09-08 11:17:28 编辑自己做了个仿任务管理器的程序,

进程理器程序刷新效率问题
本帖最后由 Leeroe 于 2013-09-08 11:17:28 编辑 自己做了个仿任务管理器的程序,做了些扩充,包括模块列表,和注入DLL
以及打开文件位置(Win7以前的任务管理器没有这个功能)等功能

我是用C#写的UI,一些依赖Windows API的功能我是用的C++写的DLL来调用的

但是有个问题,C#刷新进程列表的时候会出现闪烁(用的.Net的Process类)
我看了任务管理器刷新时基本静如止水(基本也是1,2秒一次)

一开始我是简单的清空,然后重新添加,加过闪的太刺眼了

后来改了算法,先获取整个进程数组
然后foreach 进程数组 和 listview,比较pid 
一样的话并且进程名也一样就不管,进程名不一样就更新进程名和文件位置
同时都刷新内存占用

然后再循环两遍
找到那些listview中存在而进程数组不存在的(已结束,不存在的进程)
然后从listview控件中移除

但是,就是这样还是会有略微的能够察觉的闪烁

请问是因为C#本身的问题吗(慢?)
有没有什么办法能够解决?还是说我只能用MFC从写一遍提高效率来解决??

或者换个问题
VC怎么在Win7系统下 获取 System.exe进程的路径?(我看到任务管理器可以)
在ring3下,不通过驱动可以实现吗?

随便回答一点就结贴吧。。
[解决办法]
c#操作慢肯定有影响,不过感觉如果把移除改为替换是不是会好点,如1234列,如要移除2列,将2列=3,3=4,4移除。也就是说前排的列都用替换,添加删除在列尾操作,是不是会好点

热点排行