我有一个应用程序需要以非常精确的间隔执行代码。为此,我还需要将 Windows 的调度程序分辨率通过timeBeginPeriod
.
为此,我有一个本机 C++ dll,它通过TimerQueueTimer
以 1ms 的间隔从 a 引发的回调处理所有时间关键的事情(所有本机代码)。
应用程序本身是一个 .NET 应用程序(C#,所以纯 CLR)。本机 dll 使用缓冲,因此 C# 代码本身不需要时间关键,只要它每 50 毫秒左右获得一些执行时间。
当垃圾收集器罢工时,这是否也会停止或延迟我程序中任何计时器回调的执行?(换句话说:.NET 程序的非确定性是否会传播到它使用的本机代码片段?)我还没有找到这个精确问题的答案。MSDN 文档的链接将是最令人放心的。
我正在使用 .NET 4.0