日期:2014-05-17  浏览次数:20813 次

线程里面异步处理问题啊 求解决
 线程调用 
 Thread th = new Thread(new ThreadStart(TRun));
 th.Start();

 private void TRun()
 {
   调用委托给控制绑定
   myDelegate1 md1 = new myDelegate1(DataBindUserInfo);
   Invoke(md1);                  
 }

DataBindUserInfo这个方法里面绑定一个树结构(treeview)和一个列表结构(datagrid)
数据量也不是很大   加载时候界面假死啊 有个 5 6秒吧
怎么去显示加载让他不假死啊   解决啊

------解决方案--------------------
多线程操作UI,请使用Delgate 
具体代码参考:

        class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }

            private void button1_Click(object sender, EventArgs e)
            {
                run();
            }

            public void run()
            {
                for (int i = 0; i < 1500; i++)
                {
                    writer wrt = new writer(i.ToString());
                    Thread th = new Thread(new ParameterizedThreadStart(wrt.Startwrite));
                    th.Start(this);
                }
            }

            public void SetRichTextBoxText(string str)
            {
                this.BeginInvoke(new Action(delegate() { this.richTextBox1.Text += str; }));
            }
        }

        class writer
        {
            string aline;
            public writer(string str)
       &nb