怎么判断定线程执行完了?

游戏人间 CSDN会员 游戏人间 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
下面这段代码怎么才能保证线程执行完了,主线程再执行,请测试通过了再说。
因为这个比较特殊,线程中要访问控件,就使得次程要切换到主线访问控件。所以
使用 thread.Join(), ManualResetEvent 等方法 都会使程序死掉。


一个Form 窗体,btnTest 按钮 txtMsg文本框

  public partial class Form1 : Form
{

Thread thread;

public Form1()
{
InitializeComponent();
}

private void btnTest_Click(object sender, EventArgs e)
{

thread = new Thread(new ThreadStart(DoWork));
thread.Start();

//......

txtMsg.Text = "完成";

}

void DoWork()
{
SetText("线程运了。");

}

delegate void SetTextHandler(string msg);
private void SetText(string msg)
{
if (txtMsg.InvokeRequired)
{
SetTextHandler d = new SetTextHandler(SetText);
object val = (object)msg;
this.Invoke(d, val);
}
else
{
txtMsg.Text += "\r\n" + msg;
}
}
}
...全文

相关推荐

评论 52
收藏 已收藏
分享
返回顶部
游戏人间 CSDN会员
C# 111,128 成员 642,537 内容