我想放慢一个循环的速度,让它每5秒循环一次。
在ActionScript中,我会使用一个计时器和一个计时器完成事件来做这件事。在C#中我该怎么做呢?
发布于 2010-08-15 08:14:21
您可以将此调用添加到您的循环中:
System.Threading.Thread.Sleep(5000); // 5,000 ms
或者为了获得更好的可读性:
System.Threading.Thread.Sleep(TimeSpan.FromSeconds(5));
但是,如果您的应用程序有一个用户界面,您就不应该在前台线程(处理应用程序消息循环的线程)上休眠。
发布于 2010-08-15 08:21:11
你可以试着用计时器,
using System;
public class PortChat
{
public static System.Timers.Timer _timer;
public static void Main()
{
_timer = new System.Timers.Timer();
_timer.Interval = 5000;
_timer.Elapsed += new System.Timers.ElapsedEventHandler(_timer_Elapsed);
_timer.Enabled = true;
Console.ReadKey();
}
static void _timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
//Do Your loop
}
}
此外,如果循环中的操作持续时间超过5秒,则可以设置
_timer.AutoReset = false;
要禁用下一个计时器滴答,直到操作在循环中完成
但是当循环结束时,你需要再次启用计时器,比如
_timer.Enabled = true;
发布于 2010-08-15 08:28:59
根本不要使用循环。设置Timer
对象并对其触发的事件做出反应。请注意,因为这些事件将在不同的线程(线程池中的计时器线程)上触发。
https://stackoverflow.com/questions/3486672
复制