/// <summary> /// Обработчик таймера, реализация счетчика перед фотографированием для всего цикла фотографирования /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void timer1_Tick(object sender, EventArgs e) { //Выполнять ли таймер (лучше управлять флагом разрешения на эту логику, чем мучаться управлять самим таймером) if (!_timerActionEnabled) { return; } if (_cameraService.IsPhotoThreadAlive())//Ждем пока завершится потом съемки + выставления картинки. Таймеру дадут работать, как только отфоткает, но не выставит картинку { return; } lock (_lock) { if (_foucesSDKError) //Если ошибка из сдк при наведении фокуса { _foucesSDKError = false; _timerActionEnabled = false; new MessageFocusError().ShowDialog(); _timerActionEnabled = true; } } switch (_timer) { case 1: { pbOne.Visible = true; pbTwo.Visible = false; pbThree.Visible = false; } break; case 2: { pbOne.Visible = false; pbTwo.Visible = true; pbThree.Visible = false; } break; case 3: { pbOne.Visible = false; pbTwo.Visible = false; pbThree.Visible = true; } break; case 4: { pbOne.Visible = false; pbTwo.Visible = false; pbThree.Visible = true; } break; case 5: { pbOne.Visible = false; pbTwo.Visible = false; pbThree.Visible = false; _timer = 0; MakeNextFoto(); //Если фотоцикл завершен if (_currentFotoIndex >= _fotoVulae - 1) { _timerActionEnabled = false; } //timer1.Stop(); return; } } _timer++; }