WPF에서 작업 지연
WPF에서 작업을 지연하는 것은 사용자 경험을 향상하고 원활한 전환을 보장하는 데 필수적입니다. 일반적인 시나리오 중 하나는 새 창으로 이동하기 전에 지연을 추가하는 것입니다.
이를 달성하기 위해 제공된 코드 조각에 표시된 대로 Thread.Sleep이 자주 사용됩니다. 그러나 Thread.Sleep을 사용하여 UI 스레드를 차단하면 지연이 진행되는 동안 UI가 응답하지 않게 됩니다. 이는 다음 페이지로 이동하기 전에 "2분 지연"이라는 메시지가 간략하게 표시되는 것으로 나타납니다.
이 제한 사항을 해결하려면 DispatcherTimer, Task.Delay 또는 async/await와 같은 비동기 기술을 사용하는 것이 좋습니다.
방법 1: DispatcherTimer 사용
DispatcherTimer 클래스는 지정된 간격 후에 작업을 실행하는 방법을 제공합니다.
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(); };
방법 2: Task.Delay 사용
Task.Delay는 지정된 지연 후에 완료되는 작업을 반환하는 메서드입니다.
tbkLabel.Text = "two seconds delay"; Task.Delay(2000).ContinueWith(_ => { var page = new Page2(); page.Show(); });
방법 3: Async/Await 사용(.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 스레드가 계속 응답하며 사용자는 새 페이지로 원활하게 전환하기 전에 전체 지연 기간 동안 "2초 지연" 메시지를 보게 됩니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3