读书人

线程实施的顺序 等线程执行完再执行下

发布时间: 2013-04-05 10:24:33 作者: rapoo

线程执行的顺序 等线程执行完再执行下一个线程

        Thread tr = null;        delegate void Methinvoker();        private void btSeInfo_Click(object sender, EventArgs e)        {            tr = new Thread(new ThreadStart(SeleInfo));            tr.IsBackground = true;            //  tr.SetApartmentState(ApartmentState.STA);            tr.Start();            Thread tr1 = new Thread(new ThreadStart(StartThreadCaiji));            tr1.Start();        }        private void StartThreadCaiji()        {            tr.Join();            Methinvoker meth = new Methinvoker(MessSeInfo);            this.BeginInvoke(meth);        }        private void MessSeInfo()        {            //Monitor.Enter(obj);            // Monitor.Wait(obj);            MessageBox.Show("数据采集完成,成功采集记录总数:【" + caiji.ToString() + "】条\n 其中红色讯号灯表示通讯错误,绿色表示提取成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);            pbLoad.Value = 0;            tbpg.Text = "";            caiji = 0;            btStopSelect.Enabled = false;            //   Monitor.Exit(obj);        }


当然还可以用Monitor来锁 这就不解释了

读书人网 >编程

热点推荐