>백엔드 개발 >C++ >진행률 보고 및 취소를 통해 WPF에서 백그라운드 작업을 수행하는 방법은 무엇입니까?

진행률 보고 및 취소를 통해 WPF에서 백그라운드 작업을 수행하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2025-01-07 14:48:43510검색

How to Perform Background Tasks in WPF with Progress Reporting and Cancellation?

WPF의 백그라운드 실행

WPF 애플리케이션에서는 UI 스레드를 차단할 수 있는 작업을 백그라운드에서 실행해야 합니다. 적절한 접근 방식을 선택할 때 스레드 차단, 진행률 보고, 취소, 멀티스레딩 지원과 같은 요소를 고려하세요.

작업 기반 API 및 Async/Await

.NET 4.5 이상(또는 .NET 4.0 with Microsoft.Bcl.Async), async/await를 사용하는 작업 기반 API는 백그라운드 실행을 위한 최적의 솔루션을 제공합니다. 편리하고 구조화된 코딩 경험을 제공합니다.

다음 코드는 async/await를 사용하여 백그라운드에서 작업을 실행하는 예를 보여줍니다.

private async void Start(object sender, RoutedEventArgs e)
{
    try
    {
        await Task.Run(() =>
        {
            int progress = 0;
            for (; ; )
            {
                Thread.Sleep(1);
                progress++;
                Logger.Info(progress);
            }
        });
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}

이 코드는 백그라운드에서 실행되는 작업을 생성하여 진행 변수를 통해 진행 상황을 보고하고 CancellationTokenSource를 통해 취소할 수 있도록 합니다( 표시).

추가 리소스

추가 정보 및 심층적인 이해:

  • [보고서 및 허용하다 취소하시겠습니까?](https://stackoverflow.com/questions/498416/how-to-execute-task-in-the-wpf-Background-while-able-to-provide-report-and-al)
  • 4.5의 비동기: 비동기 API에서 진행 및 취소 활성화(블로그 게시물)
  • [비동기 및 대기](https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/async/)
  • [Async/ 기다리다 FAQ](https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/async/async-faq)

위 내용은 진행률 보고 및 취소를 통해 WPF에서 백그라운드 작업을 수행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.