本帖最后由 wx_junhong 于 2010-08-17 14:56:39 编辑

解决方案 »

  1.   


    using System.Threading;Thread t1 = new Thread(new ThreadStart(t1));
    t1.start();Thread t2 = new Thread(new ThreadStart(t2));
    t2.start();
      

  2.   

    public void t1()
    {
    this.Invoke((EventHandler)delegate{this.label32.ForeColor = Color.Blue;});
    }public void t2()
    {
    this.Invoke((EventHandler)delegate{this.comboBox1.Items.Clear();});
    goods.Class1 goods_cl1 = new goods.Class1();
    string stt = this.comboBox1.Text.Trim().ToString();
    int all = goods_cl1.Get_all_Goods_Names().Tables[0].Rows.Count - 1;
    //如果是vs2008
    List<string> items = new List<string>();
    for (int i = all, j = 0; j <= i; j++)
    {
    items.Add(goods_cl1.Get_all_Goods_Names().Tables[0].Rows[j][0].ToString().Trim());
    }
    this.Invoke((EventHandler)delegate
    {
    this.comboBox1.Items.AddRange(items);
    this.label32.ForeColor = Color.Red;
    });
    }private void button1_Click(object sender, EventArgs e)
    {
    new Thread((ThreadStart)delegate{t1();}).Start();
    new Thread((ThreadStart)delegate{t2();}).Start();
    }
    大量界面更新,多线程意义不大,要频繁的同步ui线程。