下面的情況C#WPF - 顯示文本使用延遲
按鈕按下
顯示文本框 「成功訂購」
延遲2秒仍呈現文本
延時結束和文字進行修改/消失到「放置您的芯片」
問題:
使用線程休眠它顯示文本之前凍結整個用戶界面,延遲後出現第二個文本。有趣的是,我改變文字後播放的聲音播放,但文字沒有顯示。
使用任務(異步/延遲/等待)它不會等待延遲,只是在一行中顯示,所以首先文本很短的時間,然後立即改變爲第二文本。
使用任務(等待)程序崩潰。
使用計時器它與使用任務(異步或/和延遲)具有相同的效果。
使用while(時間,第二次+2秒)現在只是將新時間推到時間上,如果時間結束,它就完成了,但與Thread Sleep有相同的效果 - 整個UI凍結。
也許有趣的是,有一些計時器在後臺運行。
我嘗試了很多我在這裏找到的版本,但都沒有工作 - 也許是關於WPF,所以我現在問如果有人有WPF延遲的解決方案。
代碼
private void SendWithDelay()
{
// close(); // Sets text back to "place your chip" but for here:
tbPlace.Text = "Place your chip";
}
private void changeVisibilityForDelay()
{
// called by pressed button
tbPlace.Text = "Successfully ordered";
tbPlace.Visibility = Visibility.Visible;
Task.Delay(2000).ContinueWith(t => SendWithDelay(), TaskScheduler.FromCurrentSynchronizationContext());
}
通過MCVE @ASh表示*最小,完整和可驗證示例*:http:// stackoverflow。com/help/mcve – user3185569
對不起,添加了一個我試過的例子 – iDraGoN