static System.Timers.Timer xxTimer;
xxTimer = new System.Timers.Timer(5000);//5秒一触发
xxTimer.Elapsed += new ElapsedEventHandler(HelloWorld);
xxTimer.Enabled = true;
定时器5秒一触发HelloWorld执行,比如当前已经走了三秒,如何让他重头开始计时,从0秒开始计数,重新来
试了下
xxTimer.Stop();
xxTimer.Start();发现他是接着三秒那个时间点继续执行,也就过了2秒就又执行了
10 个解决方案
#1
绝对是你自己搞错了
#2
什么意思,我做了测试,的确是从第三秒继续延续的,不是从0s开始
#3
意思就是测试代码写的不对
#4
static System.Timers.Timer xxTimer;
static void Main(string[] args)
{
xxTimer = new System.Timers.Timer(5000);//设置盒采集时间频率
xxTimer.Elapsed += new ElapsedEventHandler(HelloWorld);
xxTimer.Enabled = true;
while(true)
{
Console.ReadLine();
boxTimer.Stop();
boxTimer.Start();
Console.ReadLine();
}
}
static void HelloWorld(object source, ElapsedEventArgs e)
{
Console.WriteLine("1234");
}
键盘输入一个字母,开始触发,当输出1234后,等了3秒,我又输入一个字母,发现过了2秒就又输出了,而不是重新过5秒
#5
boxTimer都是xxTimer
#6
#7
循环里面加也不行
xxTimer = new System.Timers.Timer(5000);
还是无法重置计时器
#8
ReadLine是要按回车才有效的!
#9
绝对是按了的,还是不能重置计时器
#10
键盘输入一个字母,开始触发,当输出1234后,等了3秒,我又输入一个字母,发现过了2秒就又输出了,而不是重新过5秒
ReadLine是要按回车才有效的!
已经解决了,去掉ReadLine就好了
#1
绝对是你自己搞错了
#2
绝对是你自己搞错了
什么意思,我做了测试,的确是从第三秒继续延续的,不是从0s开始
#3
意思就是测试代码写的不对
#4
意思就是测试代码写的不对
static System.Timers.Timer xxTimer;
static void Main(string[] args)
{
xxTimer = new System.Timers.Timer(5000);//设置盒采集时间频率
xxTimer.Elapsed += new ElapsedEventHandler(HelloWorld);
xxTimer.Enabled = true;
while(true)
{
Console.ReadLine();
boxTimer.Stop();
boxTimer.Start();
Console.ReadLine();
}
}
static void HelloWorld(object source, ElapsedEventArgs e)
{
Console.WriteLine("1234");
}
键盘输入一个字母,开始触发,当输出1234后,等了3秒,我又输入一个字母,发现过了2秒就又输出了,而不是重新过5秒
#5
boxTimer都是xxTimer
#6
#7
重新实例化一下
循环里面加也不行
xxTimer = new System.Timers.Timer(5000);
还是无法重置计时器
#8
键盘输入一个字母,开始触发,当输出1234后,等了3秒,我又输入一个字母,发现过了2秒就又输出了,而不是重新过5秒
ReadLine是要按回车才有效的!
#9
键盘输入一个字母,开始触发,当输出1234后,等了3秒,我又输入一个字母,发现过了2秒就又输出了,而不是重新过5秒
ReadLine是要按回车才有效的!
绝对是按了的,还是不能重置计时器
#10
键盘输入一个字母,开始触发,当输出1234后,等了3秒,我又输入一个字母,发现过了2秒就又输出了,而不是重新过5秒
ReadLine是要按回车才有效的!
已经解决了,去掉ReadLine就好了