Как сделать, чтобы повторный MessageBox не выводился? - C#

Узнай цену своей работы

Формулировка задачи:

Извиняюсь, если не совсем правильно сформулировал вопрос. Есть таймер, который дергает функцию
private void MonitoringTime()
{
   List <GDataGridRow> rows =  dataGrid.Rows.FindAll(x => ((MonitoringSite)x.Key).Before < Utils.Time.TimeUtils.UnixToDate(Utils.Time.TimeUtils.ServerUnixTime));
   if (rows != null)
   {
       for(int i =0; i < rows.Count; i++)
       {
           MessageBox.Show("Истекло время для " + ((MonitoringSite)x.Key).Name);
       }
   }
}
Как сделать, чтобы пока сообщение на экране, новый MessageBox по данному объекту не показывать? Если в цикле появился новый объект,которого нет, его выводим. При этом на MessageBox должно идти время обратного отсчета на 1 минуту, по истечении времени, оно должно само закрываться. Но это уже другой вопрос.
Буду признателен любому совету. Заранее спасибо.

Решение задачи: «Как сделать, чтобы повторный MessageBox не выводился?»

textual
Листинг программы
private bool IsMessageBoxShowing;
private void MonitoringTime()
{
   List <GDataGridRow> rows =  dataGrid.Rows.FindAll(x => ((MonitoringSite)x.Key).Before < Utils.Time.TimeUtils.UnixToDate(Utils.Time.TimeUtils.ServerUnixTime));
   if (rows != null)
   {
       for(int i =0; i < rows.Count; i++)
       {
           // Если вы вызываете MonitoringTime(); один раз
           // и условие для цикла выполнится, то сообщения будут выводить друг за другом.
           // Если вам это нужно избежать, добавьте break; после соощения.
           // Если вы вызываете метод параллельно, тогда будет только 1 сообщение.
           if(!IsMessageBoxShowing) {
                IsMessageBoxShowing = true;
                MessageBox.Show("Истекло время для " + ((MonitoringSite)x.Key).Name);
                IsMessageBoxShowing = false;
                // break;
           }
       }
   }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.143 из 5
Похожие ответы