我正在编写一个 Windows 应用程序,它在 map 上显示实时数据。有没有简单的方法来获取 FPS(每秒帧数)?
谢谢,在谷歌上找不到太多信息。这是 C#、.NET 4.0。
最佳答案
计算 FPS 可能就像这样简单(如果精度不是最重要的话):
DateTime _lastCheckTime = DateTime.Now;
long _frameCount = 0;
// called whenever a map is updated
void OnMapUpdated()
{
Interlocked.Increment(ref _frameCount);
}
// called every once in a while
double GetFps()
{
double secondsElapsed = (DateTime.Now - _lastCheckTime).TotalSeconds;
long count = Interlocked.Exchange(ref _frameCount, 0);
double fps = count / secondsElapsed;
_lastCheckTime = DateTime.Now;
return fps;
}
设置一个更新计时器,每秒调用 GetFps()
来获取值。请注意,不应并发调用此方法,因为每次调用都会重置计数器和开始时间。
关于winforms - Windows 窗体,获取 FPS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6738034/