ไม่สามารถรอ "โมฆะ" [ซ้ำ]
Nov 01 2020
นี่คือสคริปต์ของฉัน
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);' มันขึ้นว่า 'ไม่สามารถรอ' เป็นโมฆะ '' ได้โปรดให้ใครทำสคริปต์ให้ฉันอีกครั้งเพื่อให้มันใช้งานได้
คำตอบ
1 sobby01 Nov 01 2020 at 06:49
Thread.sleep (3000) ไม่สามารถรอได้ วิธีการของคุณเป็นแบบ async ดังนั้นการนำไปใช้ในอุดมคติจะรอ Task.Delay (3000)
Thread.Sleepจะบล็อกเธรดปัจจุบันของคุณและTask.Delayจะล่าช้าอย่างมีเหตุผลโดยไม่บล็อกเธรดปัจจุบันของคุณ
ไม่ควรใช้ Thread.sleep ในการทำงานแบบอะซิงโครนัสแทนเราควรใช้ Task.Delay (3000) และในทางกลับกัน
2 CoolBots Nov 01 2020 at 06:19
Thread.Sleep()ไม่สามารถรอได้ ใช้Task.Delay()แทน