是这样子的,我有一个UI的FORM,启击一个按钮之后,会启动一个新的线程
这个线程是一个CLASS来的,就像下面的代码一样:Thread thdSub = new Thread(new ThreadStart(abc.DownLoad));
thdSub.Start();这个abc.DownLoad里面有一个循环,里面汲及到更新UI的LISTVIEW说到委托更新,可以在两个FORM之间进度,却没办法在一个CLASS里面更新UI,请问应该怎样子帮?谢谢
这个线程是一个CLASS来的,就像下面的代码一样:Thread thdSub = new Thread(new ThreadStart(abc.DownLoad));
thdSub.Start();这个abc.DownLoad里面有一个循环,里面汲及到更新UI的LISTVIEW说到委托更新,可以在两个FORM之间进度,却没办法在一个CLASS里面更新UI,请问应该怎样子帮?谢谢
要写成:
private void UpdateUI(object sender, EventArgs e)
{
if (InvokeRequest)
Invoke(new EventHandle(UpdateUI, sender, e));
else
//TODO: Update UI
}
然后调用!
这段代码的意思是.
如果调用不是当前thread触发,就重新由当前thread(UI thread)
再调用一次,这样就可以更新UI了!
因为UI不可以跨Thread更新,所以通过这种方法!