카메라의 릴리스를 트리거하기 전에 DispatcherTimer
을 사용하여 카운트 다운을 수행하고 있습니다. UpdateCountdown
메서드는 카메라가 작동하기 전에 사용자에게 표시되는 이미지를 변경하는 데 사용됩니다. TakePicture
메서드를 즉시 실행하는 대신 카운터가 0에 도달하고 마지막 이미지가 표시된 후 약간의 지연이 필요합니다.카운트 다운 타이머 이후에 지연을 추가하는 방법
아래 표시된 코드는 _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;
}
타이밍에 대해서는 어떻게 생각하지 않습니까?
좋은 지적으로, 나는이 구성으로 시작했다고 생각합니다. – pdemarest