当前位置:编程学习 > C#/ASP.NET >>

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

[csharp] 
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);  

        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);
        }

 

补充:软件开发 , C# ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,