如何在c#中每隔几秒调用一个特定的方法?

“机器人游戏”是我开发的第一款基本游戏。 洋红色’#’角色是一个敌人,它应该在这张地图中随机移动,但它的随机移动速度太快我试图使用线程,但它会影响所有角色的速度。 现在,我需要每100毫秒调用一次“Enemy”方法。

机器人游戏图片: 在此处输入图像描述

您可以使用System.Timer 。 但是,要预先警告这些计时器可能不如您所希望的那样准确。 您永远不会轻易在非实时操作系统(如Windows)上获得完全准确的计时器,但如果您想要更好的计时器准确度, 多媒体计时器可能会有所帮助。

来自MSDN的System.Timer示例:

 public class Timer1 { private static System.Timers.Timer aTimer; public static void Main() { // Normally, the timer is declared at the class level, // so that it stays in scope as long as it is needed. // If the timer is declared in a long-running method, // KeepAlive must be used to prevent the JIT compiler // from allowing aggressive garbage collection to occur // before the method ends. You can experiment with this // by commenting out the class-level declaration and // uncommenting the declaration below; then uncomment // the GC.KeepAlive(aTimer) at the end of the method. //System.Timers.Timer aTimer; // Create a timer with a ten second interval. aTimer = new System.Timers.Timer(10000); // Hook up the Elapsed event for the timer. aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent); // Set the Interval to 2 seconds (2000 milliseconds). aTimer.Interval = 2000; aTimer.Enabled = true; Console.WriteLine("Press the Enter key to exit the program."); Console.ReadLine(); // If the timer is declared in a long-running method, use // KeepAlive to prevent garbage collection from occurring // before the method ends. //GC.KeepAlive(aTimer); } // Specify what you want to happen when the Elapsed event is // raised. private static void OnTimedEvent(object source, ElapsedEventArgs e) { Console.WriteLine("The Elapsed event was raised at {0}", e.SignalTime); } }