关于线程的问题请教?
我想做这样的工作
Thread t = new Thread(new ThreadStart(showProgress)); //显示进度条
t.Start();
GetData(); //是一个耗时操作
t.Abort();
void showProgress()
{
//显示进度条
}
一般GetData()是放在单独线程中,在主线程中显示进度条,
但是我想反过来,在主线程中GetData(),在单独的线程中显示进度条
但那个t一瞬间就执行完了,还是达不到效果,我该如何处理? 在showProgress中用Timer也不行,反正那个showProgress一到最后一个}号就挂了.
[解决办法]
void showProgress()
{
while(!m_RunEnd)
{
//进度条
}
}
bool m_RunEnd=false;
GetData()
{
//操作
//完成
m_RunEnd=true;
}
[解决办法]
主线程是UI线程
你用另外个线程操作UI界面的控件比较麻烦。
做好的方法就是用委托异步调用那个耗时的方法,给一个回调方法。
主线程就负责UI就好了
[解决办法]
getData做完了通知滚动条结束
[解决办法]