簡體   English   中英

顯示一條消息 3 秒,然后繼續

[英]Display a message for 3 seconds and then continue

我有一個非常簡短的方法,可以從數據庫中刪除一條記錄,如果成功,則會向用戶顯示一條消息以確認該記錄已被刪除......

    private void BtnConfirmDelete_Click(object sender, RoutedEventArgs e)
    {
        // Hide "Record deleted" message
        lblDeleteSuccessful.Visibility = Visibility.Hidden;

        // Call interface method to delete record
        Record recInstance = new Record();
        recInstance.DeleteItemFromDatabase<Record>(recordNum);

        // Display "Record deleted" message
        lblDeleteSuccessful.Visibility = Visibility.Visible;
    }

我努力了...

    private void Delay()
    {
        // Will delay for 3 seconds
        DateTime timeNow = DateTime.Now;
        DateTime afterDelay = timeNow.AddSeconds(3);

        do
        {
            // Nothing !!!
        } while (timeNow != afterDelay);
    }

... 和...

    private void Delay()
    {
        int delay = 3000; // Three seconds
        Thread.Sleep(delay);
    }

...但這些都不起作用。

有沒有辦法做到這一點??

看起來您正在使用 WPF 之類的東西。

如果您使用的是 Thread.Sleep,整個線程將停止。 因此,如果您在 UI-Thread 中調用 Delay 方法,它將凍結並且您不會在 UI 中看到任何變化。

相反,您可以在不同的線程中運行代碼,以便 UI 線程能夠同時更改 UI。

這是使用異步方法實現此目的的一種方法:

private async Task ToggleVisibilityForThreeSeconds()
{
    lblDeleteSuccessful.Visibility = Visibility.Visible;
    await Task.Delay(3000);
    lblDeleteSuccessful.Visibility = Visibility.Hidden;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM