后台线程的运行优先级低于前台线程吗?

时间:2016-11-11 11:15:29

标签: c# .net multithreading

后台线程的优先级是否低于前台线程,即使它们的Thread.Priority设置为相同的值?

考虑以下代码: -

Thread threadFG = new Thread(MyMethod);//foreground thread

Thread threadBG = new Thread(MyMethod);//background thread
threadBG.IsBackground = true;

性能会有差异吗?请注意,我正在为两个线程使用默认优先级。

网上很多文章包括MSDN说后台线程会在应用程序退出时自动销毁,而前台线程不是这种情况。关于StackOverflow的很多问题都是这样说的。但我没有找到谈论两者之间性能差异的资源。

仅仅因为后台线程,该线程的运行速度是否比前台线程慢?

1 个答案:

答案 0 :(得分:3)

  

后台线程的优先级是否低于前台线程,即使它们的Thread.Priority设置为相同的值?

没有。除非明确指定,否则所有线程都以默认优先级开始Normal

  

性能会有差异吗?

自己测量,使用秒表或类似机制来衡量表现。线程的执行性能依赖于很多东西,包括主机的组件(CPU架构,内核数量等)。

  

仅仅因为后台线程,该线程的运行速度是否比前台线程慢?

没有。正如@ Damien_The_Unbeliever'} MSDN link所解释的:前景或背景与表现无关。