没有ThreadPriority.Highest保证在ThreadPriority.Lowest之前完成?

时间:2016-06-30 13:49:02

标签: c# multithreading thread-priority

stream.end()

当我执行上面的代码时,我希望X的打印作业结束,因为我给了该方法最低优先级,但有时我最终得到了O.我的意思是没有给予第二线程高优先级保证它会更快完成?

2 个答案:

答案 0 :(得分:4)

优先级设置引起的线程调度没有实际保证。

例如,高优先级线程可能会阻止IO或页面错误。然后,另一个线程可以执行。

这不是同步线程的好方法。

答案 1 :(得分:0)

CPU的三百个操作是第二个操作的一部分。我建议您将您的问题和应用程序视为统计实验。

多次重复您的实验,因为少数几个实验不值得信赖。这是因为人口(迭代次数不够大)。我尝试运行这个应用程序几次,但是有3 000 000次迭代,我让它写45秒(while(true)和Thread.Sleep(45000))。优先级较高的任务先完成。

您的操作系统,CPU和PC配置很重要。