Stopwatch的不同值.频率在同一台PC上
本文关键字:一台 PC 频率 Stopwatch | 更新日期: 2023-09-27 17:50:32
我正在做在线游戏,有客户端和服务器。对于客户端我使用Unity3D和c#,服务器是用c#编写的。对于同步,我使用计时器,正如我们所知,计时器依赖于刻度。c#中的滴答计数器是Stopwatch类,1秒内的滴答计数等于Stopwatch。频率,但在服务器和客户端,秒表的值。频率是不同的,这会破坏我的同步,因为服务器上的计时器太慢了,不像客户机上的计时器。秒表。服务器上的频率等于3.124.980,秒表。客户端的频率为10.000.000。那么,为什么? ?如何更改秒表的值?定时器同步的频率?谢谢,对不起,我的英语很差
Stopwatch
在有多个处理器的PC上可能不可靠,或者处理器没有恒定的时钟速度(处理器可以减少时钟以节省能量),所以你根本不能在游戏中使用它(因为你希望它在每台计算机上都能工作)。
许多游戏使用全局监视,我已经看到,即使是最简单的全局监视算法也足以同步游戏的客户端和服务器。看看克里斯蒂安的算法。
拥有全局手表,您可以简单地使用DateTime.UtcNow
来测量时间。
秒表。Frequency不能更改—它以每秒的滴答数获取计时器的频率。
该字段是只读的。Stopwatch类使用的计时器取决于系统硬件和操作系统。
字段秒表。如果秒表计时器基于高分辨率性能计数器,则IsHighResolution为true。否则,IsHighResolution为false,在这种情况下,它表示秒表计时器基于系统计时器。