Non posso attendere "void" [duplicato]
Nov 01 2020
questo è il mio copione.
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();
}
C'è un errore sulla riga "await Thread.Sleep (3000);" Dice "Non posso attendere" void "" Per favore, qualcuno potrebbe rifare la sceneggiatura per me in modo che funzioni?
Risposte
1 sobby01 Nov 01 2020 at 06:49
Thread.sleep (3000) non è in attesa. Il tuo metodo è asincrono, quindi l'implementazione ideale sarà attesa Task.Delay (3000)
Thread.Sleep bloccherà il thread corrente e Task.Delay ritarderà logicamente senza bloccare il thread corrente.
Thread.sleep non dovrebbe essere usato nel funzionamento asincrono, invece dovremmo usare Task.Delay (3000) e viceversa.
2 CoolBots Nov 01 2020 at 06:19
Thread.Sleep()non è in attesa . Usa Task.Delay()invece.