DispatcherTimer
カメラでリリースをトリガーする前に、カウントダウンを実行するためにを使用しています。このUpdateCountdown
メソッドは、カメラが起動する前にユーザーに表示される画像を変更するために使用されます。メソッドをすぐに実行するのではなくTakePicture
、カウンターがゼロに達して最後の画像が表示された後、少し遅らせたいと思います。
以下に示すコードでは、その時点で一時停止が発生し_countdown = 1
ます。最終的な画像が表示され、TakePicture()
ほぼ同時に起動します(最初に発生すると思いますTakePicture
)。
_countdownTimer = new DispatcherTimer();
_countdownTimer.Interval = TimeSpan.FromSeconds(1);
_countdownTimer.Tick += new EventHandler(delegate(object s, EventArgs a)
{ UpdateCountdown(); } );
_countdownTimer.Tick += new EventHandler(delegate(object s, EventArgs a)
{if (_countdown == _countdownMax)
{
System.Threading.Thread.Sleep(2000); // Slight delay before taking picture
Camera.TakePicture();
} });
}
public void StartCountdown()
{
if (doCount)
{
doCount = false;
UpdateCountdown();
_countdownTimer.Start();
}
}
private void UpdateCountdown()
{
_countdown--;
CountdownImage = _countDownImages[_countdown]; // Data bound to Image Control
if (_countdown == 0)
{
_countdown = _countdownMax;
_countdownTimer.Stop();
doCount = true;
}
タイミングで考慮していないことは何ですか?