标签: c# multithreading performance time scheduler
根据this,很明显框架是基于处理器,操作系统等的线程时间片动态的。
时间片的长度取决于操作系统和处理器。
但是,在给定系统上获取实际线程时间片的方法是什么?
我们在Sleep和Thread.SpinWait(x)之间动态切换,以保持某些时序敏感代码在sub-ms范围内准确;但是需要根据底层系统的线程时间片保持该开关的可编程性,这样我们就不会使SpinWait(xxx)持续太长时间。
Sleep
Thread.SpinWait(x)
那么,如何在C#中获取线程时间片(5ms,10ms或20ms等)?
答案 0 :(得分:1)
默认值大约为15毫秒,但可以更改。您可以查看以下SO问题:why-are-net-timers-limited-to-15-ms-resolution