是这样子的,我有一个UI的FORM,启击一个按钮之后,会启动一个新的线程
这个线程是一个CLASS来的,就像下面的代码一样:Thread thdSub = new Thread(new ThreadStart(abc.DownLoad));
thdSub.Start();这个abc.DownLoad里面有一个循环,里面汲及到更新UI的LISTVIEW说到委托更新,可以在两个FORM之间进度,却没办法在一个CLASS里面更新UI,请问应该怎样子帮?谢谢

解决方案 »

  1.   

    可以.
    要写成:
    private void UpdateUI(object sender, EventArgs e)
    {
    if (InvokeRequest)
    Invoke(new EventHandle(UpdateUI, sender, e));
    else
    //TODO: Update UI
    }
      

  2.   

    在Class里调用Form的这个方法,可以在Class里用delegate
    然后调用!
    这段代码的意思是.
    如果调用不是当前thread触发,就重新由当前thread(UI thread)
    再调用一次,这样就可以更新UI了!
    因为UI不可以跨Thread更新,所以通过这种方法!