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 이상을 대상으로 하는 프로젝트의 경우 async/await 패턴은 간결하고 편리한 지연을 처리하는 방법:
public async void TheEnclosingMethod() { tbkLabel.Text = "two seconds delay"; await Task.Delay(2000); var page = new Page2(); page.Show(); }
비동기 기술을 활용하면 개발자는 UI 응답성을 저하시키지 않으면서 WPF 작업에 지연을 도입할 수 있습니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3