WPF에서 작업을 실행하기 전에 지연을 도입하려고 시도하는 경우 Thread.Sleep을 사용하지 않는 것이 중요합니다. 접근 방식은 UI 스레드를 차단하고 사용자 인터페이스가 응답하지 않을 수 있습니다. 대신 비동기 프로그래밍 기술 활용을 고려해 보세요.
한 가지 옵션은 DispatcherTimer를 사용하는 것입니다. 이 타이머는 UI 스레드에서 실행되며 지정된 간격 후에 Tick 이벤트 핸들러를 호출합니다.
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(); };
Task.Delay를 사용하는 또 다른 접근 방식:
tbkLabel.Text = "two seconds delay"; Task.Delay(2000).ContinueWith(_ => { var page = new Page2(); page.Show(); });
여기서 프로그램은 2초 지연 후 완료되는 작업을 생성한 다음 연속 대리자를 호출하여 새 페이지를 표시합니다.
마지막으로 .NET 4.5 이상을 대상으로 하는 프로젝트의 경우 비동기/대기 패턴은 지연을 처리하는 간결하고 편리한 방법을 제공합니다.
public async void TheEnclosingMethod() { tbkLabel.Text = "two seconds delay"; await Task.Delay(2000); var page = new Page2(); page.Show(); }
개발자는 비동기 기술을 활용하여 프로젝트에 지연을 도입할 수 있습니다. UI 응답성을 저하시키지 않고 WPF 작업을 수행합니다.
위 내용은 UI 스레드를 차단하지 않고 WPF 작업에 지연을 도입하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!