>>190

bool cancelRequested;

async button1_Click()
{
 button1.Enabled = false;
 button2.Enabled = true;

 cancelRequested = false;
 await Task.Run( DoWork );

 button1.Enabled = true;
 button2.Enabled = false;
}

button2_Click()
{
cancelRequested = true;
}

void DoWork()
{
 while( ! cancelRequested )
 {
  ;
 }
}