如果Process方法执行时间超过定时器间隔,下面的写法会导致界面假死得不到响应
public void Tick(object sender, EventArgs e)
{
lock (newlock)
{
string nowTime = DateTime.Now.ToString("HH:mm");
List<string> exeTimes = new List<string>(config.ExeTime.ToArray());
if (config.ExeTime.Contains(nowTime))
{
Process(sender, e);
exeTimes.Remove(nowTime);
}
}
}
public void Tick(object sender, EventArgs e)
{string nowTime = DateTime.Now.ToString("HH:mm");
List<string> exeTimes = new List<string>(config.ExeTime.ToArray());
if (!config.ExeTime.Contains(nowTime)) return;
lock (newlock)
{
Process(sender, e);
exeTimes.Remove(nowTime);
}
}