private void timer1_Tick(object sender, System.EventArgs e)
{
if 条件成立时执行下列循环
for (int i=1;i<=iRowCount;i++)
{
循环体代码 执行的内容是从数据库里取的 执行的时间不同 }
}
我设置的Interval=10000(10秒)
问题1:
当循环体内容未执行完时,timer又触发了一次,将意味这我想要处理的数据没处理完,怎么解决?
问题2
能不能把循环体单独提出来做成一个函数,当每次timer触发是排成一个队列去执行,这种办法应该怎么做?不知道讲明白了没?万分着急请各位打虾帮忙?
{
if 条件成立时执行下列循环
for (int i=1;i<=iRowCount;i++)
{
循环体代码 执行的内容是从数据库里取的 执行的时间不同 }
}
我设置的Interval=10000(10秒)
问题1:
当循环体内容未执行完时,timer又触发了一次,将意味这我想要处理的数据没处理完,怎么解决?
问题2
能不能把循环体单独提出来做成一个函数,当每次timer触发是排成一个队列去执行,这种办法应该怎么做?不知道讲明白了没?万分着急请各位打虾帮忙?
循环前: timer1.Enabled = false;
循环后:timer1.Enabled = true;
public class Timer2
{
public static void Main()
{
// Create a new Timer with Interval set to 10 seconds.
System.Timers.Timer aTimer = new System.Timers.Timer(10000);
aTimer.Elapsed+=new ElapsedEventHandler(OnTimedEvent);
// Only raise the event the first time Interval elapses.
aTimer.AutoReset = false;
aTimer.Enabled = true;
Console.WriteLine("Press \'q\' to quit the sample.");
while(Console.Read()!='q');
}
// Specify what you want to happen when the event is raised.
private static void OnTimedEvent(object source, ElapsedEventArgs e)
{
Console.WriteLine("Hello World!");
}
}
wangsaokui(无间道III(终极无间)能不能说的更详细一点啊!
{
lock( objLocker ) // <====== 添加同步机制,便可以实现所谓的排队执行。
{
if 条件成立时执行下列循环
for (int i=1;i<=iRowCount;i++)
{
循环体代码 执行的内容是从数据库里取的 执行的时间不同 }
}
}添加lock(),可以实现排队机制,其实你可以在lock()之前,去判断一个类变量,当正在处于操作时就置为true, 否则为false,这样就可以避免一大堆timer事件在堆积。