Apabila cuba memperkenalkan kelewatan sebelum melaksanakan operasi dalam WPF, adalah penting untuk mengelak daripada menggunakan Thread.Sleep, kerana ini pendekatan menyekat urutan UI dan boleh menyebabkan antara muka pengguna tidak responsif. Sebaliknya, pertimbangkan untuk memanfaatkan teknik pengaturcaraan tak segerak.
Satu pilihan ialah menggunakan DispatcherTimer. Pemasa ini berjalan pada urutan UI dan memanggil pengendali acara Ticknya selepas selang waktu tertentu:
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(); };
Pendekatan lain melibatkan penggunaan Task.Delay:
tbkLabel.Text = "two seconds delay"; Task.Delay(2000).ContinueWith(_ => { var page = new Page2(); page.Show(); });
Di sini, program mencipta tugasan yang selesai selepas kelewatan 2 saat dan kemudian memanggil perwakilan sambungan untuk menunjukkan halaman baharu.
Akhir sekali, untuk projek yang menyasarkan .NET 4.5 atau lebih tinggi, corak async/wait menyediakan cara ringkas dan mudah untuk menangani kelewatan:
public async void TheEnclosingMethod() { tbkLabel.Text = "two seconds delay"; await Task.Delay(2000); var page = new Page2(); page.Show(); }
Dengan memanfaatkan teknik tak segerak, pembangun boleh memperkenalkan kelewatan ke Operasi WPF tanpa menjejaskan responsif UI.
Atas ialah kandungan terperinci Bagaimana untuk Memperkenalkan Kelewatan dalam Operasi WPF Tanpa Menyekat Benang UI?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!