Não é possível aguardar 'void' [duplicado]
Nov 01 2020
este é o meu script.
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();
}
Há um erro na linha 'await Thread.Sleep (3000);' Diz 'Não posso esperar' nulo '' Por favor, alguém pode refazer o script para mim para que funcione?
Respostas
1 sobby01 Nov 01 2020 at 06:49
Thread.sleep (3000) não está aguardando. Seu método é assíncrono, então a implementação ideal será aguardada por Task.Delay (3000)
Thread.Sleep vai bloquear seu thread atual e Task.Delay vai atrasar logicamente sem bloquear seu thread atual.
Thread.sleep não deve ser usado em operação assíncrona, em vez disso, devemos usar Task.Delay (3000) e vice-versa.
2 CoolBots Nov 01 2020 at 06:19
Thread.Sleep()não está à espera . Use em seu Task.Delay()lugar.
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?
Christopher Nolan uma vez se arrependeu de ter lido o 'roteiro de Pulp Fiction' de Quentin Tarantino