winfrom线程问题
例如:我在界面上点击一个按钮,然后过了10秒左右才有数据输出,在这段时间里,程序是假死的,我想加入一个提示,在这段时间里面提示:“数据加载中。。。请稍候”的字样。请问高手怎么做啊?
------解决方案--------------------http://developer.51cto.com/art/200908/144372.htm
这个是具体的实例代码 自己看吧 里面注释也很清楚
------解决方案--------------------多线程..
Thread th;
From1()
{
th=new thread(new threadStart(DataPro));
th.IsBackground=true;
th.start();
}
private void DataPro()
{
//数据处理
}
------解决方案--------------------1.加一个Label,挡在最前面,先show出来这个label,等加载完再隐藏这个label。
2.加载数据时,隐藏主窗体,弹出一个加载中的提示窗体。
1.方法弊端界面假死,导致即时这么做了,有其他程序经过这个界面都会导致界面花掉。
2.比较复杂
还有第三个方法 Invoke ,详情google
------解决方案--------------------用线程或线程池,
看看这篇:
http://topic.csdn.net/u/20120805/01/58230777-2767-4337-a8f8-a3725e7db4b1.html
------解决方案--------------------void button1_Click(object sender,EventArgs e)
{
var ot=button1.Text;
new Action(DoWhateverYouWant).BeginInvoke(ar=>button1.Text=ot,null);
button1.Text="数据加载中。。。请稍候";
}
void DoWhateverYouWant()
{
//todo: 你的运行时间挺长的方法
}