"Void" [yinelenen] beklenemez

Nov 01 2020

bu benim senaryom.

        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();
            }

'Await Thread.Sleep (3000);' satırında bir hata var. 'Boşluk bekleyemez' yazıyor 'Lütfen birisi senaryoyu benim için yeniden yapsın ki çalışsın?

Yanıtlar

1 sobby01 Nov 01 2020 at 06:49

Thread.sleep (3000) beklenemez. Yönteminiz eşzamansız olduğundan ideal uygulama Task.Delay (3000) bekliyor olacak

Thread.Sleep , mevcut iş parçacığınızı engelleyecek ve Task.Delay , geçerli iş parçacığınızı engellemeden mantıksal olarak gecikecek .

Thread.sleep eşzamansız işlemlerde kullanılmamalı, bunun yerine Task.Delay (3000) kullanmalıyız ve bunun tersi de geçerlidir.

2 CoolBots Nov 01 2020 at 06:19

Thread.Sleep()değil awaitable . Task.Delay()Bunun yerine kullanın .