2016-02-11 45 views
0

出于某种原因,标签文本拒绝更新,直到ComputerTurn()子。有谁知道为什么它会这样做?为什么不通过标签文本更新?

Sub PlayerTurn(ByVal no As Integer) 
    pile -= no 
    lblDisplay.Text = "There are " + pile.ToString + " Stones in the Pile" 
    If pile = 0 Then 
     EndGame("Computer") 
    End If 
    Threading.Thread.Sleep(2000) 
    ComputerTurn() 
End Sub 

Sub ComputerTurn() 
    Dim stones As Integer = 0 
    Do 
     stones = RndInt(1, 3) 
    Loop While Not CheckNo(stones) 
    pile -= stones 
    lblCompDisplay.Text = "Computer took " + pile.ToString + " Stones" 
    If pile = 0 Then 
     EndGame("Player") 
    Else 
     btnGo.Enabled = True 
    End If 
End Sub 

回答

2

这是因为您正在指示UI线程进入睡眠状态。如果UI线程处于睡眠状态,则UI将不会更新。把它作为一个规则,你永远不会睡觉的UI线程。如果您想在做某事之前暂停两秒钟,请使用Timer与2000年的Interval.

+0

非常感谢您 –

相关问题