线程JOIN用法
来源:互联网 发布:mac 实用软件 编辑:程序博客网 时间:2024/06/04 19:44
/// <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); }