【发布时间】:2009-05-21 18:31:27
【问题描述】:
在 C# 和(非托管)C++ 中是否存在返回同步数字(例如 float 或 int)的函数?
例如,有没有什么东西可以将确切的系统时间至少提高到秒,这会在完全相同的时间在 C++ 和 C# 上返回完全相同的结果?
真的很想知道 =)
【问题讨论】:
在 C# 和(非托管)C++ 中是否存在返回同步数字(例如 float 或 int)的函数?
例如,有没有什么东西可以将确切的系统时间至少提高到秒,这会在完全相同的时间在 C++ 和 C# 上返回完全相同的结果?
真的很想知道 =)
【问题讨论】:
您在这里谈论的是托管 C++ (C++/CLI) 还是本机 C++?如果您始终使用托管代码,那么显而易见的解决方案是利用 Environment.TickCount 属性。在原生 C++ 中,等价于 Win32 API GetTickCount 函数。
【讨论】:
要获得完全的控制感,最好的办法可能是使用 p/invoke 直接从 C# 调用 Win32 函数,例如 GetSystemTime 或 GetTickCount。
但在这一切之下,DateTime 只是调用 Win32 函数,所以没有理由说它会给您带来与使用普通 C 风格 Win32 调用截然不同的实时性。
【讨论】:
很可能是托管的 C++ 和 C#。非托管 C++,可能不是,因为它不能编译为 IL。
【讨论】: