Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 尝试进行一致/准确的定时循环_C#_Real Time_Timing_Rtos - Fatal编程技术网

C# 尝试进行一致/准确的定时循环

C# 尝试进行一致/准确的定时循环,c#,real-time,timing,rtos,C#,Real Time,Timing,Rtos,我正在为游戏开发一个快速射击程序,我正在尝试四处搜索,以找到一种实现一致计时循环的方法。现在我知道windows不是实时操作系统(RTOS),我只想知道我正在尝试的最可靠的方法是什么。我目前的方法就是线程和睡眠。如果你能提供一个关于最佳使用方法的代码示例,那就太好了。还有一个问题是C++在计时方面更准确吗?< p>除非你在专用硬件上工作,否则你不能保证循环中的任何时间一致性,因为你不能控制同一个系统上运行的其他什么东西,但是,您可以通过将循环每次迭代之间经过的时间分解到计算中来解决这个问题 这一

我正在为游戏开发一个快速射击程序,我正在尝试四处搜索,以找到一种实现一致计时循环的方法。现在我知道windows不是实时操作系统(RTOS),我只想知道我正在尝试的最可靠的方法是什么。我目前的方法就是线程和睡眠。如果你能提供一个关于最佳使用方法的代码示例,那就太好了。还有一个问题是C++在计时方面更准确吗?

< p>除非你在专用硬件上工作,否则你不能保证循环中的任何时间一致性,因为你不能控制同一个系统上运行的其他什么东西,但是,您可以通过将循环每次迭代之间经过的时间分解到计算中来解决这个问题

这一术语是-这通常意味着在游戏开发环境中,自最后一帧以来的时间变化。例如,如果您的游戏以每秒60帧的速度运行,那么您的增量时间通常约为16毫秒或0.016秒

如果您开始使用增量时间进行搜索,您将发现更多有用的结果。 例如:


除非您使用专用硬件,否则无法保证循环计时的一致性,因为您无法控制同一系统上运行的其他内容,但您可以通过将循环每次迭代之间的时间分解到计算中来解决这一问题

这一术语是-这通常意味着在游戏开发环境中,自最后一帧以来的时间变化。例如,如果您的游戏以每秒60帧的速度运行,那么您的增量时间通常约为16毫秒或0.016秒

如果您开始使用增量时间进行搜索,您将发现更多有用的结果。 例如:


我并不是真的想做任何特定于游戏的事情,我只是循环检查一个键是否按下,然后模拟按键。我只是想找出处理它的最佳和最准确的方法。@DaftHacker:即使你设法用确定的时间模拟按键,它们也会被放入接收进程的输入事件队列中,当该进程选择这样做时,将对其进行处理,我并不是真的想做任何特定于游戏的事情,我只是循环检查一个键是否被按下,然后模拟按键。我只是想找出处理它的最佳和最准确的方法。@DaftHacker:即使你设法用确定的时间模拟按键,它们也会被放入接收进程的输入事件队列中,当该进程选择这样做时,将对其进行处理,你无法控制它,所以它可能最终毫无意义。