title: C# Alarm system loop issue
body: <p>I am about to build a alarm system. The way it works is by pulling date/time information from a gridview column, then I use a async action to check when the time now is equal to one or more of the rows in the gridview date/time column, if it is then show an alarm. </p>
  
  <p>Everything works fine so far, except that when 2 rows contains the same date/time, the alarm will trigger 4 times instead of 2. This is what I got so far:</p>
  
  <pre><code>    string firma = "";
      private void radButton1_Click(object sender, EventArgs e)
      {
          try
          {
              for (int i = 0; i &lt; radGridView4.Rows.Count; i++)
              {
                  DateTime executionTime = Convert.ToDateTime(radGridView4.Rows[i].Cells[10].Value.ToString());
                  ScheduleAction(action, executionTime);
              }
          }
          catch (Exception ex)
          {
              Console.WriteLine(ex);
          }
      }
  
      public async void ScheduleAction(Action action, DateTime ExecutionTime)
      {
          try
          {
              if (DateTime.Now &lt; ExecutionTime)//ExecutionTime only create an alarm for rows that are later than now
              {
                  await Task.Delay((int)ExecutionTime.Subtract(DateTime.Now).TotalMilliseconds);
  
                  action();
              }
          }
          catch (Exception ex)
          {
              Console.WriteLine(ex);
          }
      }
  
      public void action()
      {
          RadDesktopAlert Alert;
          for (int i = 0; i &lt; radGridView4.Rows.Count; i++)
          {
              DateTime executionTime = Convert.ToDateTime(radGridView4.Rows[i].Cells[10].Value.ToString());
  
              if (DateTime.Now.Date == executionTime.Date &amp;&amp; DateTime.Now.Hour == executionTime.Hour &amp;&amp; DateTime.Now.Minute == executionTime.Minute)
              {
                  Alert = new RadDesktopAlert();
  
                  firma = radGridView4.Rows[i].Cells[2].Value.ToString();
  
                  Alert.CaptionText = "Telefonmøde";
                  Alert.ContentText = firma;
                  Alert.Show();
  
              }
          }
      }
  </code></pre>
  
  <p>Any help is appreciated, and everything works without errors without the try statement aswell.</p>
  
  <p>Thanks in advance!</p>