먼저이 문제에 대해 많이 읽었지만 마음에 분명하지 않습니다.GUI 및 데이터로드 병렬
데이터베이스, 로컬/원격 파일, 웹 서비스 등에서 많은 양의 정보를로드하는 것을 의미하는 WPF 앱을 개발 중입니다. 예를 들어,이 데이터는 데이터 격자 및 이러한 유형의 컨트롤로로드됩니다.
내 응용 프로그램은 정상적으로 작동하지만 데이터로드 프로세스로 인해 사용자 환경이 좋지 않습니다. 예를 들어, 많은 양의 데이터를 요청하는 메인 윈도우에 초점을 맞추기 때문에 그리드에로드되고 표시되는 데 2-3 초가 걸립니다.
앱을 처음 실행했을 때 실제로보고 싶은 점은 GUI를 즉시로드 한 다음 데이터로드 작업을 수행하고 회 전자를 표시하거나 객체를 기다리는 중 또는 그 이상의 프로세스가 나타날 때까지 그리드 위에 표시하는 것입니다 (비동기식?)로드.
내 테스트에서 데이터를로드하는 순서 (코드에 있음)에 관계없이 생성자 내부에서 여러 이벤트가 끝날 때 (초기화,로드 등)), ShowDialog 명령 바로 앞에있는 Init 메서드에서 ... GUI 창에 재료가로드 될 때까지 나타나지 않습니다.
GUI를위한 스레드와 데이터를로드하는 비동기 스레드를 처리해야한다고 생각하지만 Dispatcher, Delegates 등을 사용하여 몇 가지 테스트를 성공적으로 수행했습니다.
요약하면 목표는 가능한 빨리 GUI를로드 한 다음 데이터를로드하고 GUI를 새로 고치는 것입니다.
이제는 다소 혼란 스러워요. 스레드, 디스패처 등에 관한 문제를 읽었지 만, 그들이 내 필요에 알맞은 지 여부는 알 수 없습니다. 따라야 할 길을 말해 줄 수 있기를 바랍니다.
감사합니다, Borja.
나는 여기에 적어 놓은 것을 모두 읽는 것을 너무 게으른 습관이다. 대신 관련 코드를 게시하십시오. –
BackgroundGround 작업자와 우선 순위 바인딩. 그리고 질문을 정리하십시오. – Paparazzi
주요 솔루션은 큰 데이터 집합을 피하는 것입니다 (결국 GUI는 사용자 용 U와 함께). 두 번째 옵션 : 최소로 채워진 VM으로 시작하고 스레드에서 목록 (관찰 가능 항목)을 업데이트합니다. –