3
나는 사용자 후 초 커플에 대한 TextBox
을 해제하기 위해 노력하고있어이 Enter
클릭하십시오 Thread
자고 때 내가 계속 입력하면실은 정말로 자지 않습니까?
<StackPanel>
<TextBox x:Name="txt1" Width="150" Margin="10" KeyUp="txt1_KeyUp"/>
</StackPanel>
private void txt1_KeyUp(object sender, KeyEventArgs e)
{
if (e.Key == Key.Enter)
{
txt1.IsEnabled = false;
Thread.Sleep(2500);
txt1.IsEnabled = true; //all text is added here
}
}
이 모든 것을 내가 TextBox
에 팝 업을 입력 할 때 Thread
" 깨어나 라 ".
제 질문은 GUI 스레드가 잠자는 동안 발생하는 모든 이벤트를 저장하는 버퍼가 있습니까?
UI 스레드를 실제로 자면 안됩니다. 오히려 텍스트 상자를 비활성화하고 나중에 다시 활성화하려면 작업을 예약하십시오. – Nick
UI Sleeping은 올바른 선택이 아니라는 것을 알고 있습니다. 그러나 제 질문은 Thread.Sleep 메서드가 어떻게 작동하는지에 대한 것입니다. – Yoav
입력 한 텍스트의 키 이벤트가 기다려야하므로 UI 스레드를 잠자고 있습니다. 또한이 2.5 초 동안 UI가 응답하지 않을 수도 있습니다. 즉, Enter 키를 누른 다음 창 크기를 조정 해보십시오. 버퍼링되지 않은 질문에 대답하기 위해하지만 그들은 모두 당신이 exectuing에서 중지 한 스레드에서 실행으로 차단됩니다. – TheKingDave