加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – Thread.start后面紧跟Thread.join – 它有用吗?

发布时间:2020-12-15 18:16:51 所属栏目:百科 来源:网络整理
导读:我在其他人编写的项目的许多地方遇到过这样的代码,我仍然感到困惑,为什么有人会编写这样的代码. 请考虑以下代码(此代码在C#中,但我认为它也适用于许多语言 – 可能只是在语法上有所不同,或者可能是类的名称和执行此操作的方式 – 您明白了.): Thread thread
我在其他人编写的项目的许多地方遇到过这样的代码,我仍然感到困惑,为什么有人会编写这样的代码.

请考虑以下代码(此代码在C#中,但我认为它也适用于许多语言 – 可能只是在语法上有所不同,或者可能是类的名称和执行此操作的方式 – 您明白了.):

Thread thread;

thread = new Thread(new ThreadStart(method));
thread.Start();
thread.Join();

据我所知,这段代码意味着启动一个线程并运行方法,然后这个线程等待,而不做任何其他事情,为新启动的线程完成.

如果是这样的话,为什么我不直接调用该方法,即

method()

如果我的理解是对的,有人可以向我解释一下吗?第一个代码片段在功能上是否与第二个相同?

解决方法

通常,你是对的,这不是一件非常有用的事情.

但有时,您可能希望操作在单独的线程上运行,因为它会修改或依赖于某些每线程状态.

该函数可能正在摆弄线程本地数据,或者它可能会调用本机COM代码,并且COM的线程公寓内容是基于每个线程进行初始化的,因此为了避免受到调用代码更改的影响,您可以想要关闭一个新线程来调用该函数.

当然,在这种情况下,一个小代码评论解释为什么这么明显无用的东西,可能是个好主意.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读