Say that you have a simple program with a start and a stop button. Once the start button is start, the program should loop through some code at every new second. Then how can you make the stop button break the loop that is activated with the start button?

I figured something like this:

Code:
bool keepRunning = true;
int NewSecond;
int MemSecond;

private void StartButton(object sender, EventArgs e)
        {
while(keepRunning){
  NewSecond = DateTime.Now.Second;
  if(NewSecond!=MemSecond){
    MemSecond = NewSecond;
    //run the program that's in the loop
   }
  System.Threading.Thread.Sleep(1);
}
}
private void StopButton(object sender, EventArgs e)
        {
keepRunning = false;
}

But then I get an not responding program?