在触发相机上的释放之前,我正在使用 aDispatcherTimer
进行倒计时。该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;
}
我的时间安排没有考虑到什么?