/// <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);
}
线程JOIN用法
最新推荐文章于 2026-05-22 14:31:04 发布
本文介绍了一个简单的主线程与子线程交互的例子,展示了如何启动一个新的线程执行特定任务,并通过JOIN方法确保主线程在子线程完成后再继续执行。此外,还介绍了如何在GUI应用程序中更新界面。
5万+

被折叠的 条评论
为什么被折叠?



