제목이 상호 배타적 인 사운드이며, 이것은 아마도 끔찍한 해킹 일 것입니다.하지만 어쨌든 묻습니다.UI가 차단 된 동안 진행 상황을 사용자에게 알립니다.
상태 표시 줄 레이블을 "로드 중 ..."으로 설정하고 데이터베이스에서 데이터를 동기식으로로드하는 경우 (최대 1-2 분이 소요될 수 있음) 단일 스레드 VB.NET 응용 프로그램이 있습니다. 데이터가로드되는 동안 사용자에게 AJAX 유형의 애니메이션을 표시 할 수있는 방법이 있습니까? 물론 올바른 방법은 별도의 스레드/BackgroundWorker 데이터 액세스 및 UI 별도로 관리 할 수 있지만 데이터 액세스 모델을 변경할 수 없습니다 및 "임시 수정"요청했습니다.
는 다음 순간에 내 아이디어 중 일부입니다 : 그것은 어떻게 든 창을 우회, 다시 그리기있어 강제로 다른 스레드에서
업데이트 라벨 (및 해당 단일 레이블) 메시지 펌프 (아마 불가능)
형성다른 프로세스를 백그라운드로 유지하고 주 응용 프로그램에서 "show"메시지를 보냅니다. 응용 프로그램 앞에 표시되며 기본 응용 프로그램에서 "숨김"메시지가 수신 될 때까지 애니메이션을 보여줍니다. 아마 내려 그것을 제안 투표 (그리고 솔직히 나는 사람들을 비난하지 않는다) 것이다
데이터베이스 호출을 다른 스레드로 이식 할 수 없지만 다른 스레드로 양식 다시 그리기를 이식 할 수는 있습니다. 다른 스레드 옵션은 나에게 가장 이해가가는 것 같습니다. – christopher
@chris 죄송합니다, 너무 빠르게 입력하십시오. 데이터베이스 호출은 다양한 클래스와 폼에서 액세스 할 수 있으며 호출을 차단하려고 할 때마다 각 호출자를 다시 프로그래밍해야하므로 포팅 할 수 없습니다. 앞으로는 가능할지라도 현재로서는 불가능합니다. 그렇다면 컨트롤을 소유하고있는 스레드가 차단되어있는 동안 다른 스레드에서 컨트롤을 업데이트하고 다시 그릴 수 있습니까? 어떻게 가능합니까? 모든 코드 샘플? –
BackgroundWorker는 데이터 액세스를 변경해야합니까? 나는 당신이 그 _try_ 먼저해야한다고 생각합니다. –