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 に答える