Ожидание в течение некоторого времени, пока не будет выполнено условие
У меня есть такой код, который выполняется в другом потоке, чем основной поток.
if(_isSTminStarted && (_stMinExpired == false)) { //wait till stMin is expired String message = string.Empty; do { message = "Waiting till STmin expires " + DateTime.Now.ToString("h:mm:ss.fff"); _logger.Info(message); } while (_stMinExpired == false); _isSTminStarted = true; _timer.STminTimerStarted(_stMinRecieved); CanFrame consecutiveFrame = _fragmentedFrameQueue.Dequeue(); PublishFrame(consecutiveFrame); }
Пожалуйста, посмотрите цикл do while, я добавил Это, потому что мне нужно ждать, пока таймер не истечет и _stMinExpired не будет установлен в true. Тогда только я должен отправить следующий кадр.
Этот флаг устанавливается, когда истекает срок действия таймера System. threading.timer. Но я не думаю, что это идеальный способ подождать до этого времени. можете ли вы предложить некоторые способы, с помощью которых я могу ждать в этом потоке, пока этот флаг не будет установлен, а не ставить цикл do while?
walterhevedeich
Я не вижу никаких проблем в этом, если только вы не хотите регистрировать сообщение несколько раз, пока _stMinExpired не будет установлен в true.