WPF 응용 프로그램의 런 및 비동기 인식 : 아키텍처 고려 사항
WPF 응용 프로그램에서는 특히 UI에 실속이있을 때 런 또는 비동기 인식을 사용하도록 선택하십시오. 일반적인 문제입니다. 이 문제를 해결하려면 다음과 같은 요소를 고려해야합니다.
<.> 1
Async-await는 배경 스레드에서 수행되지 않습니다. 대기 작업이 CPU 집약적 인 작업 인 경우 UI가 발생할 수 있습니다. 이를 방지하려면 작업을 사용하여 해당 작업을 배경 스레드에 맡기십시오.
<.> 2. 스레드 효율 최적화 :
task.run을 사용하여 가장 외부 비동기 호출을 포장하여 .NET의 스레드 오버 헤드를 줄입니다. 이를 통해 통화의 모든 후속 비동기 인식 작업이 백그라운드 스레드에서 수행 될 수 있습니다.
<.> 3. 코드 및 CPU 밀도가 높은 방법 :
<.> 재사용 가능한 코드에서 작업을 사용하지 마십시오. 대신, task.run을 사용하여 CPU 집약적 방법을 호출하고 메소드 서명에서 CPU 집약적 특성을 명확하게 설명하십시오. 이 분리는 배경 스레드의 효율에 영향을 미치지 않고 유연하게 재사용 된 구성 요소 일 수 있습니다.
ui 스레드 최적화 모범 사례 :
task.run을 신중하게 사용하는 것 외에도 다음 기준을 따라 빠른 UI 스레드를 유지하십시오.
차단을 피하기 위해 UI 스레드 작업을 50 밀리 초 이내에 유지하십시오.
UI 스레드의 연속을 초당 약 100 회로 제한합니다.
ConfigUreaWait (False)를 사용하여 UI 스레드에서 대기하는 작업을 복원 할 때 성능을 최적화하십시오.
이러한 원칙을 관찰함으로써 UI의 응답 능력에 영향을 미치지 않고 CPU 조밀 작업을 백그라운드 스레드에 효과적으로 할당 할 수 있습니다.