C# Thread.start紧接着Thread.join-有用吗?
在别人写的项目中,我在很多地方都遇到过这样的代码,我仍然不明白为什么会有人写这样的代码 考虑下面的代码(这段代码是C语言的,但我认为它也适用于许多语言——可能只是语法上的差异,或者可能是类的名称和实现方式——你明白了。) 据我所知,这段代码意味着启动一个线程并运行C# Thread.start紧接着Thread.join-有用吗?,c#,multithreading,C#,Multithreading,在别人写的项目中,我在很多地方都遇到过这样的代码,我仍然不明白为什么会有人写这样的代码 考虑下面的代码(这段代码是C语言的,但我认为它也适用于许多语言——可能只是语法上的差异,或者可能是类的名称和实现方式——你明白了。) 据我所知,这段代码意味着启动一个线程并运行方法,然后这个线程在不做任何其他事情的情况下等待新启动的线程完成 如果是这样的话,为什么我不直接调用这个方法呢 method() 有人能解释一下我的理解是否正确吗?第一个代码片段的功能是否与第二个相同?通常,您是对的,这不是一件非常有
方法
,然后这个线程在不做任何其他事情的情况下等待新启动的线程完成
如果是这样的话,为什么我不直接调用这个方法呢
method()
有人能解释一下我的理解是否正确吗?第一个代码片段的功能是否与第二个相同?通常,您是对的,这不是一件非常有用的事情
但有时,您可能希望操作在单独的线程上运行,因为它修改或依赖于某些每个线程的状态
函数可能正在处理线程本地数据,或者它可能会调用本机COM代码,COM的线程单元内容是在每个线程的基础上初始化的,因此为了避免调用代码中的更改影响这一点,您可能只需要派生一个新线程来调用函数
当然,在这种情况下,一个小的代码注释解释为什么做了一些看起来毫无用处的事情,可能是个好主意 两段代码在功能上是相同的。Threads案例只是将调用委托给high price。但在某些情况下,它可能会有所帮助:
- 您的线程有另一个安全上下文,但您希望在默认情况下执行。模拟花费的处理器时间与从池中分配线程的处理器时间几乎相同
- 您的线程的优先级比当前线程的优先级高(或者在一段时间内低),所以关键的一小部分代码可以在运行时附近执行。对于低优先级,假设等待时间较长(例如,从用户输入)
method()