启动另一个计时器的计时器 - 错误的间隔
Timer that starts another timer - wrong interval
我做了一个小型监控工具,可以记录来自网络摄像头的图像。为了保持数据量流畅,我没有录制视频,而是每隔三秒保存三张快照,然后每整分钟重复一次。
我在表单中添加了两个计时器,间隔为 60,000 的 timerMin 和间隔为 3000 的 timer3Sec,添加了事件处理程序并在表单加载时启动分钟计时器:
timerMin.Tick += timerMin_Tick;
timer3Sec.Tick += timer3Sec_Tick;
timerMin.Start();
然后我从分钟的滴答事件开始计时 3 秒:
private void timerMin_Tick(object sender, EventArgs e)
{
timer3Sec.Start();
}
在 3 秒计时器的滴答事件中,我保存了快照并增加了一个计数器,所以我知道何时保存了 3 个快照:
private void timer3Sec_Tick(object sender, EventArgs e)
{
SaveSnap((Bitmap)pictureBox1.BackgroundImage);
Ticks++;
if (Ticks > 2)
{
timer3Sec.Stop();
Ticks = 0;
}
}
"Ticks" 是一个 public 整数,用 0 初始化。我预计这会导致每分钟拍摄三个快照。唉,我每分钟只能得到一个。我的想法哪里出了问题?
确保在您的 Savesnap
方法中生成不同的文件名。
警惕 DateTime.ToShortTimeString,它只会缩短到几分钟。 ;-)
我做了一个小型监控工具,可以记录来自网络摄像头的图像。为了保持数据量流畅,我没有录制视频,而是每隔三秒保存三张快照,然后每整分钟重复一次。
我在表单中添加了两个计时器,间隔为 60,000 的 timerMin 和间隔为 3000 的 timer3Sec,添加了事件处理程序并在表单加载时启动分钟计时器:
timerMin.Tick += timerMin_Tick;
timer3Sec.Tick += timer3Sec_Tick;
timerMin.Start();
然后我从分钟的滴答事件开始计时 3 秒:
private void timerMin_Tick(object sender, EventArgs e)
{
timer3Sec.Start();
}
在 3 秒计时器的滴答事件中,我保存了快照并增加了一个计数器,所以我知道何时保存了 3 个快照:
private void timer3Sec_Tick(object sender, EventArgs e)
{
SaveSnap((Bitmap)pictureBox1.BackgroundImage);
Ticks++;
if (Ticks > 2)
{
timer3Sec.Stop();
Ticks = 0;
}
}
"Ticks" 是一个 public 整数,用 0 初始化。我预计这会导致每分钟拍摄三个快照。唉,我每分钟只能得到一个。我的想法哪里出了问题?
确保在您的 Savesnap
方法中生成不同的文件名。
警惕 DateTime.ToShortTimeString,它只会缩短到几分钟。 ;-)