C#混合定时器和循环

本文关键字:循环 定时器 混合 | 更新日期: 2023-09-27 18:23:59

我正在为生物识别系统创建一个自注册系统。我试着用定时器创建一个循环混合。我想拍摄一张图像,然后停止计时器,等待5秒,再拍摄5次。我试图使用thread.sleep,但它会使我的picturebox停止播放视频。但根据下面的代码,它将直接捕获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();
}

C#混合定时器和循环

您可以更改计时器的间隔,使其每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();
}

这应该解决:

    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++)之后。