线程JOIN用法

本文介绍了一个简单的主线程与子线程交互的例子,展示了如何启动一个新的线程执行特定任务,并通过JOIN方法确保主线程在子线程完成后再继续执行。此外,还介绍了如何在GUI应用程序中更新界面。
        /// <summary>
        /// 等待时间
         /// </summary>
        static int waittime = 1000;

        /// <summary>
        /// 主线程 等待到 新的线程 结束后,再往下执行 主线程
         /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Form1_Load(object sender, EventArgs e)
        {
            show("主线程开始");
            Thread newThread = new Thread(new ThreadStart(Work));
            newThread.Start();

 
	   //主线程最多等待2秒钟,如果子线程在2秒钟内执行完就显示“新的线程结束”,否则显示“JOIN操作超时”
            if (newThread.Join(2 * waittime))              {
                show("新的线程结束");
            }
            else
            {
                show("Join操作超时");
            }

            show("主线程结束");
        }

        /// <summary>
        /// 向主界面richTextBox1显示信息
         /// </summary>
        /// <param name="message"></param>
        private void show(string message)
        {
            richTextBox1.Invoke(new EventHandler(delegate
            {
                this.richTextBox1.Text += message + Environment.NewLine;
                richTextBox1.Select(richTextBox1.Text.Length, 0);
                richTextBox1.ScrollToCaret();
            }));
        }

        /// <summary>
        /// 新的线程执行的方法
         /// </summary>
        private void Work()
        {
            show("新的线程被执行");
            Thread.Sleep(2 * waittime);
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值