Memperkenalkan Kelewatan dalam Operasi WPF
Objektif anda untuk melaksanakan kelewatan sebelum menavigasi ke tetingkap berikutnya boleh dicapai melalui beberapa pendekatan dalam WPF.
Masalah Gambaran Keseluruhan:
Menggunakan Thread.Sleep untuk menggantung urutan sebelum menavigasi membawa kepada penyekatan UI, menyebabkan elemen UI dipaparkan secara ringkas sebelum navigasi berlaku.
Penyelesaian:
Untuk mengelakkan sekatan benang, anda harus menggunakan teknik menunggu tak segerak seperti pemasa penghantar atau Tugas. Kelewatan.
Kaedah 1: DispatcherTimer
Buat pemasa dengan selang 2 saat dan tambah pengendali acara Tick yang akan menghentikan pemasa dan paparkan halaman kedua apabila selang masa berlalu:
tbkLabel.Text = "two seconds delay"; var timer = new DispatcherTimer { Interval = TimeSpan.FromSeconds(2) }; timer.Start(); timer.Tick += (sender, args) => { timer.Stop(); var page = new Page2(); page.Show(); };
Kaedah 2: Task.Delay
Guna Task.Delay untuk menggantung operasi tak segerak selama 2 saat dan kemudian memaparkan halaman seterusnya:
tbkLabel.Text = "two seconds delay"; Task.Delay(2000).ContinueWith(_ => { var page = new Page2(); page.Show(); });
Kaedah 3: Async/ Tunggu (untuk .NET 4.5 dan Ke Atas)
Gaji async/tunggu untuk mencapai menunggu tak segerak dalam kaedah dan elakkan sekatan benang:
public async void TheEnclosingMethod() { tbkLabel.Text = "two seconds delay"; await Task.Delay(2000); var page = new Page2(); page.Show(); }
Atas ialah kandungan terperinci Bagaimana untuk Memperkenalkan Kelewatan dalam Operasi WPF Tanpa Menyekat UI?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!