[英]How would I make a messageBox not show within a time limit of a button click? c#
[英]How to make C# button click only one time and make a textbox show two result?
我寫下面的簡單代碼。 我想做到這一點:1.單擊按鈕。 2.顯示第一個字符串。 3.等待3秒鍾。 4.顯示第二個字符串。 但是使用此代碼,我僅在單擊按鈕並等待3秒鍾后才能看到第二個字符串。 我看不到第一個字符串。 有什么辦法可以做到這一點?
namespace clicktest
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void button_Click(object sender, RoutedEventArgs e)
{
this.textBox.Text = "Show 1st time";
Thread.Sleep(3000);
this.textBox.Text = "Show 2nd time";
}
}
}
阻塞線程(例如在WPF中使用Thread.Sleep
時)會阻止GUI刷新。
相反,您可以使用await Task.Delay
,它不會阻塞線程:
private async void button_Click(object sender, RoutedEventArgs e)
{
this.textBox.Text = "Show 1st time";
await Task.Delay(3000);
this.textBox.Text = "Show 2nd time";
}
正如@Alexander Higgins所說的,您可以使用await Task.Delay ,但是您必須將異步類型添加到您的方法中,如下所示:
private async void button_Click(object sender, RoutedEventArgs e)
{
this.textBox.Text = "Show 1st time";
await Task.Delay(3000);
this.textBox.Text = "Show 2nd time";
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.