gpt4 book ai didi

c# - 在 c# 或 c++ 中使用更快的时钟加速应用程序

转载 作者:太空宇宙 更新时间:2023-11-04 12:04:24 24 4
gpt4 key购买 nike

我有用 C# 和 C++ 编写的相互通信的不同应用程序。我想用我写的一些场景来测试这个环境。

每个场景的运行时间不同。

有没有一种方法可以加速一切,以便让场景在几分钟内运行。

应用程序可能包含一些 Thread.Sleep(...) 或 C++ 中的等效项。

我的想法是,Thread.Sleep(2000) 通常会等待 2 秒,但在加速时它应该只等待 200 毫秒。

不幸的是,我无法更改或重构应用程序的代码。

我的第一个想法是在“加速 Windows”系统中运行应用程序。一种操作系统的包装器,时间运行得更快。但我不知道如何实现这一目标。

所以任何新的想法或解决方案都会很棒。

谢谢

最佳答案

我不认为“让 Windows 运行得更快”是可行的,但我会考虑拦截 Sleep() 方法调用并将它们短路。我没看过,但 Thread.Sleep() 可能会在某个地方找到 Win32 API 或 NT API (http://msdn.microsoft.com/en-us/library/windows/desktop/ms686298(v=对比 85).aspx)。

您可以使用 Windows SDK 中的 depends.exe 和调试器来查看您的代码使用了什么,但我怀疑(除非您知道)它不仅仅是一个 Sleep() 调用,它更有可能是等待某个系统对象、I/O 或触发器的调用,使用 WaitForMultipleObjectsEx() 和 friend 。

查看 Microsoft Research 针对 API 拦截的 Detours http://msdn.microsoft.com/en-us/library/windows/desktop/ms686298(v=vs.85).aspx

Jeffry Richter 和 Matt Pietrek 也有很多关于这个主题的文章。事实上,这是一篇受其中一篇启发的代码项目文章;

http://www.codeproject.com/Articles/5178/DLL-Injection-and-function-interception-tutorial

关于c# - 在 c# 或 c++ 中使用更快的时钟加速应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12837025/

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