首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

winfrom线程有关问题

2013-01-11 
winfrom线程问题例如:我在界面上点击一个按钮,然后过了10秒左右才有数据输出,在这段时间里,程序是假死的,

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: 你的运行时间挺长的方法
}

热点排行