日期:2014-05-19  浏览次数:20965 次

WinForm中的一个循环速度好慢
我绑定的这个数据源.只有1502行记录,表里的数据导出成XML文档有2M

我现在要做的是右键菜单,实现全选的功能.

int   tmpcount   =   dgv_Plan.Rows.Count;//tmpcount=1502
for   (int   i   =   0;   i   <   tmpcount;   i++)
{
          dgv_Plan.Rows[i][ "isselect "]   =   true;
}
就这样的一个循环用了近二分钟.为什么..
有什么办法能解决这速度问题吗?

注意是:WinForm应用程序     不是ASP.NET的



------解决方案--------------------
没写过winform只好帮你顶了.
------解决方案--------------------
应该不会呀
------解决方案--------------------
是不是你当时的环境问题,重新启动系统运行,试试。
------解决方案--------------------
是不是用DataGridView,它有SelectAll()方法吧
------解决方案--------------------
用FOREACH

或用WHILE

只能试试
DataRow dr = new DataRow() ;
foreach dr in dgv_Plan.Rows
{
dr[ "isselect "] = true;
}
------解决方案--------------------
两分钟? 从这个循环的代码看根本不可能,
个人觉得可能是其它地方出现问题吧
------解决方案--------------------
怎么可以能我们做的都不慢
------解决方案--------------------
你是不是在dgv_Plan中有change的事件?
可以先将事件移除处理完后再加载
------解决方案--------------------
可能有很多
1,字段多,占据大量内存
2,应用中可能有别的线程在跑
3,机器配置等。