我目前正在使用C#编写程序,需要类似于Unity引擎中的Update方法的东西。基本上是一个循环,在给定的tick速率下一遍又一遍地执行给定的代码。为了重新创建这个功能,我计划只使用while (true)
循环,并以某种方式运行它,而不会阻塞我的线程的其余部分。有没有办法做到这一点?我的当前方法看起来像这样。
public void Update(int tickrate)
{
while (true)
{
foreach (IAgent agent in Agents)
{
agent.Move();
}
Task.Delay(tickrate / 60);
}
}
Task.Delay
在这里不会起作用,因为它没有被等待。所以,我猜你是在谈论类似于游戏循环的东西?恐怕你需要变得更加复杂才行,尤其是如果你想在(大约)给定的时钟速率下执行它(记住我们不在实时系统中!)。 - Fildor