C # Thread.Sleep (1000) leva muito mais que 1000ms em alguns computadores

Eu escrevo um programa em c # para contar 5 segundos. O que eu faço é:

        new Task(() =>
        {

                try
                {
                        this.Invoke((Action)delegate()
                        {
                            label1.Text = "5"; // 4, 3, 2..etc
                        });
                    }
                    Thread.Sleep(1000);
                }
                catch
                {
                    // form could be disposed
                    break;
                }

            }

        }).Start();

Isso funciona no meu PC, no entanto, quando copio o programa para um tablet em janela, o Thread.Sleep (1000) dá mais de 1 segundo. Em outras palavras, leva mais de 5 segundos (na verdade mais de 10 segundos) para atualizar o rótulo de 5,4,3,2,1. Como alternativa, leva muito tempo para atualizar label1.Text = "5", etc? Isso não faz sentido para mim. Eu me pergunto o que está errado?

questionAnswers(2)

yourAnswerToTheQuestion