Como cancelar a espera de Task.Delay ()?

Como você pode ver neste código:

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

Eu quero que ele defina a caixa de texto para o valor da stringi com um segundo período até eu definirLoopCheck valor parafalse . Mas o que faz é que ele cria todas as iterações para todos e, mesmo que eu defina o valor de LoopCheck como false, ele ainda faz o que faz de maneira assíncrona.

Quero cancelar tudo aguardadoTask.Delay() iteração quando definoLoopCheck=false. Como posso cancelar?

questionAnswers(4)

yourAnswerToTheQuestion