Winform 窗体假死的问题 从描述无法判断.是否计算没有完成?是否阻塞了UI线程是否在page1 Control.GotFocus做了什么动作?是否有在不断的重绘UI? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 window from下面DataGridView绑定100条很多了,感觉上去是很慢的,如果网速再差点就没法看了。分页吧 先谢过兄台。是否计算没有完成?---------确实计算完成了。是否阻塞了UI线程---------这个不太明白。是否在page1 Control.GotFocus做了什么动作?--------这个倒是有个事件,是加载一个菜单而已。没有其他。是否有在不断的重绘UI?--------page1中的几个datagridview都已经绘成,我点到别的标签页再回来,还需要重绘么? Page1内部是否也有一些计算或者其他什么的而且Page2中的计算过程以及完成的过程需要确定好,可以自己调试一下建议学习了解下多线程的应用,使用多线程的方法来实现~ 100多条就多了啊?这个我还真没经验。不过3个DataGridView每个不超过30条的。3个加起来100条不到。 兄好,page1没计算,都是已经生成的数据,我只是点击page2执行以下计算,计算结果完成后,显示正常,我在点回page1,就没响应了。多线程感觉用不到呢,因为根本不是同时进行的。操作完page1采取操作page2.然后再回来。不存在二者同时进行的可能。 恩,你可以试试使用多线程。public bool working;public static void threadworks() { while (working) { // 你要做的; }}初始化函数内:working = true;Thread thread = new Thread(new ThreadStart(threadworks));thread.Start();启动线程:working = true;thread.Start();退出线程:working = false;thread.join();这样的 除了建议使用多线程外,你可以试试排除法,一点点来排除是什么问题,你可以将page1的业务逻辑先全部清除,然后试试,如果正常那就是page1有其问题,否则就是page2,然后再一点点做排除~ 在你怀疑还可能额外执行的每一个方法的第一行,加一个Debug.Print,打印当前的方法名、参数值。然后执行你的程序,重现你的问题。打开vs的调试中的“结果”窗口,看看打印的方法调用日志。看看有什么方法正在拼命地被循环调用着。 肯定是你 page2 做什么事情的时候死循环了,这个要具体看你的代码的,你这么说,说不清楚的,我们也不清楚 用回调吧,给你个例子http://download.csdn.net/detail/hu1990728/6470589 大致代码如下:2个Datagridview。点击datagridview1的行,datagrideview2中显示详细信息。datagridview1_cellClick{ ShowDetail(int row); //row行内容中的要素}ShowDetail(int row){ //数据库中查询获得数据 DataTable dt = GetData();//不超过100行数据 datagrideview2.datasource = dt;}请教,如果用多线程或者委托,该如何。 c# 5.0添加了2个关键字async await能更轻松的实现异步编程~~http://msdn.microsoft.com/zh-cn/library/hh191443.aspx 程序没死,调试也跳不出问题,只是界面像刷过了一样,有些地方模糊,如果你拉动dagagrid的边缘,还能拉动,而且就有恢复正常了。ps:GetData那里的查询稍微复杂一点,是不是跟这个有关系? C#多维数组如何用变量定义数组长度啊? 已知有向线段两点坐标,求直线外一点坐标 通过C#代码压缩后路径过长问题。。。 btnSelect的一个小问题 问:时间控件的用法(C#制作倒计时) 使用dataGridView遇到的问题(急) wap开发中list如何分页啊 c# 中 多线程与事件处理器协同工作的问题?????? struct不能定义无参的构造函数,那么new出来的时候是怎么初始化的? 请斑竹进来指导:datagrid分页的问题? WPF 中ListView单元格样式问题 求一个解决办法
先谢过兄台。
是否计算没有完成?
---------确实计算完成了。是否阻塞了UI线程
---------这个不太明白。是否在page1 Control.GotFocus做了什么动作?
--------这个倒是有个事件,是加载一个菜单而已。没有其他。是否有在不断的重绘UI?
--------page1中的几个datagridview都已经绘成,我点到别的标签页再回来,还需要重绘么?
而且Page2中的计算过程以及完成的过程需要确定好,
可以自己调试一下
建议学习了解下多线程的应用,使用多线程的方法来实现~
兄好,page1没计算,都是已经生成的数据,我只是点击page2执行以下计算,计算结果完成后,显示正常,我在点回page1,就没响应了。
多线程感觉用不到呢,因为根本不是同时进行的。操作完page1采取操作page2.然后再回来。不存在二者同时进行的可能。
public static void threadworks()
{
while (working)
{
// 你要做的;
}
}初始化函数内:
working = true;
Thread thread = new Thread(new ThreadStart(threadworks));
thread.Start();启动线程:
working = true;
thread.Start();
退出线程:
working = false;
thread.join();这样的
http://download.csdn.net/detail/hu1990728/6470589
2个Datagridview。
点击datagridview1的行,datagrideview2中显示详细信息。
datagridview1_cellClick
{
ShowDetail(int row); //row行内容中的要素
}ShowDetail(int row)
{
//数据库中查询获得数据
DataTable dt = GetData();//不超过100行数据
datagrideview2.datasource = dt;
}请教,如果用多线程或者委托,该如何。