0
我構建silverlight應用程序,我在內容加載前顯示進度條,我需要通過進度條几秒鐘,然後我需要關閉..如何使Silverlight頁面等待幾秒鐘
我正在使用system.threading.thread.sleep(1000),但它使UI凍結。
我需要在Silverlight替代其中它不應該凍結UI和過程應等待一段時間...
我構建silverlight應用程序,我在內容加載前顯示進度條,我需要通過進度條几秒鐘,然後我需要關閉..如何使Silverlight頁面等待幾秒鐘
我正在使用system.threading.thread.sleep(1000),但它使UI凍結。
我需要在Silverlight替代其中它不應該凍結UI和過程應等待一段時間...
默認情況下,一切都在UI線程上,所以任何耗時的任務會阻止用戶界面。爲了防止這種情況,執行推到後臺線程 - 這樣做的一個方法是Task.Factory
:
Task.Factory.StartNew(() => {
Thread.Sleep(1000);
});
需要注意的是,如果你再想要做的任何UI(我想你會),然後你需要回到UI線程。 (如果後臺線程嘗試更改用戶界面,則運行時將引發異常。)通過使用Dispatcher:
Task.Factory.StartNew(() => {
// sleep on a background thread
Thread.Sleep(1000);
// when complete, return to the UI thread to prevent access violation
Application.Current.Dispatcher.BeginInvoke(() => {
// do UI stuff here
});
});