【问题标题】:Getting Thread timeslice in C#在 C# 中获取线程时间片
【发布时间】:2015-09-11 11:24:53
【问题描述】:

基于this,很明显该框架是动态的,其线程时间片基于处理器数、操作系统等。

时间片的长度取决于操作系统和处理器。

但是,在给定系统上获取实际线程时间片的方法是什么?

我们在Sleeping 和Thread.SpinWait(x) 之间动态切换,以保持某些对时间敏感的代码在亚毫秒范围内准确;但需要根据底层系统的线程时间片保持该开关可编程,这样我们就不会 SpinWait(xxx) 太久。

那么,如何在 C# 中获得线程时间片(5ms、10ms 或 20ms 等)?

【问题讨论】:

  • 我认为这不可能......我环顾四周,似乎没有 API 或 WMI 可以告诉您时间片(或量子)长度。

标签: c# multithreading performance time scheduler


【解决方案1】:

默认值约为 15 毫秒,但可以更改。您可以查看以下 SO 问题:why-are-net-timers-limited-to-15-ms-resolution

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-30
    • 2010-10-19
    • 1970-01-01
    相关资源
    最近更新 更多