No se puede esperar "void" [duplicado]

Nov 01 2020

este es mi guion.

        private async void secondmult_Click(object sender, EventArgs e)
        {
            var sct = sc;
            var secondmultx = secondmult;

            if (player.pcc == 100)
            {
                player.multiplier = 2;
                player.pcc = player.pcc - 100;
                secondmult.Enabled = false;
                sct.Text = player.pcc.ToString();
            }
            else if(player.pcc < 100)
            {
                sc.Text = "X";
                await Thread.Sleep(3000);
                sc.Text = player.pcc.ToString();
            }
            else if(player.pcc > 100)
            {
                player.multiplier = 2;
                player.pcc = player.pcc - 100;
                secondmultx.Enabled = false;
                sct.Text = player.pcc.ToString();
            }

Hay un error en la línea 'await Thread.Sleep (3000);' Dice 'No se puede esperar' vacío '' Por favor, ¿alguien puede volver a hacer el guión para que funcione?

Respuestas

1 sobby01 Nov 01 2020 at 06:49

Thread.sleep (3000) no está disponible. Su método es asíncrono, por lo que la implementación ideal estará esperando Task.Delay (3000)

Thread.Sleep bloqueará su hilo actual y Task.Delay se retrasará lógicamente sin bloquear su hilo actual.

Thread.sleep no debe usarse en una operación asincrónica, sino que debemos usar Task.Delay (3000) y viceversa.

2 CoolBots Nov 01 2020 at 06:19

Thread.Sleep()no es esperable . Úselo en su Task.Delay()lugar.