¿Cómo cancelar esperar Task.Delay ()?

Como puedes ver en este código:

public async void TaskDelayTest()
{
     while (LoopCheck)
     {
          for (int i = 0; i < 100; i++)
          {
               textBox1.Text = i.ToString();
               await Task.Delay(1000);
          }
     }
}

Quiero que establezca el cuadro de texto al valor de cadena dei&nbsp;con un segundo período hasta que establezcaLoopCheck&nbsp;valor parafalse&nbsp;. Pero lo que hace es que crea todas las iteraciones para todos e incluso si configuro el valor de LoopCheck en falso, sigue haciendo lo que hace de forma asíncrona.

Quiero cancelar todo lo esperadoTask.Delay()&nbsp;iteración cuando configuroLoopCheck=false. ¿Cómo puedo cancelarlo?