C#多线程如何调用主线程创建的控件 多线程控件c#线程 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 看不懂这有什么意义,这肯定比在主线程直接简单地运行 for 循环还慢啊。 //在构造函数加上这句话,允许跨线程访问组件,然后就不用Invoke了。CheckForIllegalCrossThreadCalls = false; Invoke是发个消息传委托到界面线程去处理……你这一下就发了上千个消息,当然慢了,难道线程切换不要时间的?没事少和界面线程通讯,人眼一般看每秒24帧就够了。你后台更新比这更频繁的话先堆着,用户不需要那么频繁的更新。 我要做的时一个数据处理的程序,想实时的显示数据处理进度,有什么好办发吗用个progressbar显示进度信息 Action pAction = new Action(() => { ProBar.Maximum = 2000; }); GUIControl ProBarControl = new GUIControl((int x) => ProBar.Value=x); int LoopCount = 1; if (ProBar.InvokeRequired) { ProBar.BeginInvoke(pAction); } else { ProBar.Maximum = 2000; } while (大于2000条数据) { LoopCount++; while (大于20条数据) { //每次写一条数据 } if (ProBar.InvokeRequired) { ProBar.BeginInvoke(ProBarControl, new object[] { LoopCount }); } else { ProBar.Value++; } } 我要做的时一个数据处理的程序,想实时的显示数据处理进度,有什么好办发吗用个progressbar显示进度信息像这种怎么处理呢 用个progressbar显示进度信息其实一般用个进度条就可以看进度了,只不过只能看到百分比如果想做的好点,可以再加个按钮,显示详细,点了之后显示个richtextbox来显示详细的信息,还可以再隐藏回去控制台程序运行的时候会不断的窗口上刷信息,那是因为它没有别的办法,只能这样做而窗口程序,控件丰富,可以用各种形式来展现用户关心详细信息,就给他看详细信息,用户不关心,就隐藏掉,只记录到后台的一个结构里,等用户想看的时候再放到界面上去 我用了progressbar还是执行的很慢的,耗时很长 你可以做个变量控制,后台数据改变了多少次,才去执行一次刷新或者后台数据先放到个全局变量里,用timer每秒显示一次最新的数值而不是后台数据每变化一次,都要往前台控件给一次最新的值 如果你的数据查询是一个SQL语句,返回一大堆查询结果,没办法显示进度要么返回数据,要么没返回数据,到底需要多长时间能返回,那是不确定的要么你设计成分多次查询,每次查询500条或1000条,然后根据总的数量来显示进度要么干脆加个旋转的沙漏,告诉用户,正在查询,没有死机,就完了 哦,好的,谢了,还想请教你个问题,如果是数据查询的话,怎么才能显示查询进度用datareader可以。fill是不行的。 如何让图片以适合大小显示出来 XML自定义结构序列话相关问题 请问如何把下面的vb程序改写成C# 100分求助:如何在Datatable中取得每列的数据列宽度 spring.net + Nhibernate 这个让我搞的头大的东西 .Net 下怎么只弹出一个MessageBox 关于计算器里面小数点的问题 Timer类的问题 用C#写的程序,怎么作安装程序来发布 字符串判断问题 C# 开发类似QQ的通讯软件,如何在软件中实现通过设置代理连接网络。百分求助!请大神帮忙。 不知道你们用HttpWebRequest 发现一个问题没有
//在构造函数加上这句话,允许跨线程访问组件,然后就不用Invoke了。
CheckForIllegalCrossThreadCalls = false;
没事少和界面线程通讯,人眼一般看每秒24帧就够了。你后台更新比这更频繁的话先堆着,用户不需要那么频繁的更新。
我要做的时一个数据处理的程序,想实时的显示数据处理进度,有什么好办发吗
用个progressbar显示进度信息
GUIControl ProBarControl = new GUIControl((int x) => ProBar.Value=x);
int LoopCount = 1;
if (ProBar.InvokeRequired)
{
ProBar.BeginInvoke(pAction);
}
else
{
ProBar.Maximum = 2000;
}
while (大于2000条数据)
{
LoopCount++;
while (大于20条数据)
{
//每次写一条数据
}
if (ProBar.InvokeRequired)
{
ProBar.BeginInvoke(ProBarControl, new object[] { LoopCount });
}
else
{
ProBar.Value++;
}
}
用个progressbar显示进度信息
像这种怎么处理呢
其实一般用个进度条就可以看进度了,只不过只能看到百分比
如果想做的好点,可以再加个按钮,显示详细,点了之后显示个richtextbox来显示详细的信息,还可以再隐藏回去控制台程序运行的时候会不断的窗口上刷信息,那是因为它没有别的办法,只能这样做
而窗口程序,控件丰富,可以用各种形式来展现
用户关心详细信息,就给他看详细信息,
用户不关心,就隐藏掉,只记录到后台的一个结构里,等用户想看的时候再放到界面上去
或者后台数据先放到个全局变量里,用timer每秒显示一次最新的数值
而不是后台数据每变化一次,都要往前台控件给一次最新的值
要么返回数据,要么没返回数据,到底需要多长时间能返回,那是不确定的要么你设计成分多次查询,每次查询500条或1000条,然后根据总的数量来显示进度
要么干脆加个旋转的沙漏,告诉用户,正在查询,没有死机,就完了
用datareader可以。fill是不行的。