你的这个循环太占CPU了,又因为数据量实在太大,导致在很短的时间内无法完成,他就会占用100%的CPU,导致机器性能下降
解决方案 »
- 关于"VS2008的评估期结束"后,注册显示成功,再打开仍然提示评估期结束的问题
- ‘=’附近有语法错误
- C# 中 需要将一个窗口初始化时放在屏幕的最右边
- 求一方法移除一段字符串中的非数字字符!
- 怎么写这段SQL语句,求和并显示出多个字段值???
- 请问,C#如何获得当前Windows用户的Local Setting这个目录?
- 请问在c#与vb.net中,与excel文件的连接字符串怎样写?
- 删除treeview父节点的同时,怎么在数据库中把所有子结点对应的目录删除掉?(急,谢)
- 请问怎么使用C#操作内存中的结构数据啊??????工程急用
- 有人会用Sharepoint server 2007嘛?求助啊。关于内网映射配置的问题。
- 请教3DES
- win7下的VS 2008出现的错误:devenv.exe 中的 0x14475578 处未处理的异常: 0xC0000005: 读取位置 0x00000000
MySqlCmd.CommandText = "Select top 100000 ID字段 from news";
分页显示数据
while (MySqlReader.Read())
{
Application.DoEvents();
label1.Text=i++.ToString();
} 关键是,在极短的时间内,你还要处理系统信息。这个更要命。你可以改一下你的代码其实你要实现的效果完全可以这样替代while (MySqlReader.Read())
{
i++;
}
label1.Text=i.ToString(); 当然还有更简单的MySqlCmd.CommandText = "Select Count(1) from news"; if (MySqlReader.Read())
{
label1.Text=MySqlReader[0].ToString();
}
随着不断的循环,使用的事件消息越来越多,由于.NET的内存延迟回收机制,内存不能很快被释放,事件消息占用的内存越来越来,最终你觉得好像是数据阅读越来越慢了。你可以注销这句话试试看,效果一定立刻改善。
while (MySqlReader.Read())
{
i++;
}
label1.Text=i.ToString(); 只更新必要的一次