0

我正在为生物识别系统创建一个自我注册系统。我试图用计时器创建一个循环混合。我想捕捉图像然后停止计时器,等待 5 秒并再次捕捉 5 次。我试图使用 thread.sleep,但它会使我的图片框停止流式传输视频。但是根据下面的代码,它会立即捕获 5 张图像,并且不停地循环。请纠正我。谢谢(5秒定时器>捕获>定时器停止)* 5次,最后全部停止

private void timer1_Tick(object sender, EventArgs e)
{
   int a = 1;

   /* while loop execution */
   while (a < 5)
   {
        CaptureFunction();
        a++;
        timer1.Stop();
   }
   timer1.Start();
}
4

2 回答 2

1

您可以更改计时器的间隔,使其每 5 秒触发一次:

http://msdn.microsoft.com/en-us/library/system.windows.forms.timer.interval(v=vs.100).aspx

5000 相当于 5 秒。然后使用此代码:

int photosTaken = 0;

private void timer_Tick(object sender, EventArgs e)
{
     CaptureFunction();
     photosTaken++;
     if(photosTaken == 5) { timer.Stop(); }
}

如果您想捕获另外 5 个,请使用此功能:

private void capture5()
{
     photosTaken = 0;
     timer.Start();
}
于 2013-07-19T12:33:12.797 回答
0

这应该解决:

    int a = 1;

    private void timer1_Tick(object sender, EventArgs e)
    {
         if(a <= 5)
         {
            CaptureFunction();
            a++;
         }
         else
            timer1.Stop();
         //place this just in case....
    }

哦...如果您真的想放置消息框,请将其放在增量(a++)之后。

于 2013-07-19T12:10:49.287 回答