gpt4 book ai didi

c# - 如何将定时器分辨率从 C# 设置为 1 毫秒?

转载 作者:太空狗 更新时间:2023-10-29 17:32:44 26 4
gpt4 key购买 nike

我用过 this tool并注意到我的 Windows Server 2008 R2 Standard 的分辨率为 15 毫秒,而 Windows 8 的计时器分辨率为 1 毫秒。

我更愿意在 Windows Server 2008 R2 上将计时器分辨率设置为 1 毫秒,因为我在其上运行低延迟软件。

我找到了这个 msdn article ,但它没有解释如何从 C# 程序更改计时器分辨率。我该怎么做?

最佳答案

你可以试试这个:

public static class WinApi
{
/// <summary>TimeBeginPeriod(). See the Windows API documentation for details.</summary>

[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Interoperability", "CA1401:PInvokesShouldNotBeVisible"), System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage"), SuppressUnmanagedCodeSecurity]
[DllImport("winmm.dll", EntryPoint="timeBeginPeriod", SetLastError=true)]

public static extern uint TimeBeginPeriod(uint uMilliseconds);

/// <summary>TimeEndPeriod(). See the Windows API documentation for details.</summary>

[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Interoperability", "CA1401:PInvokesShouldNotBeVisible"), System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage"), SuppressUnmanagedCodeSecurity]
[DllImport("winmm.dll", EntryPoint="timeEndPeriod", SetLastError=true)]

public static extern uint TimeEndPeriod(uint uMilliseconds);
}

然后像这样使用它:

WinApi.TimeBeginPeriod(1);

回到原来的样子:

WinApi.TimeEndPeriod(1);

关于c# - 如何将定时器分辨率从 C# 设置为 1 毫秒?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15071359/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com