Microsoft MVP성태의 닷넷 이야기
wpf mvvm ui update 로딩중 표시 [링크 복사], [링크+제목 복사],
조회: 10724
글쓴 사람
흰털너부리
홈페이지
첨부 파일
 

두 개의 윈도우를 각각 실행하는 방법(Windows Forms, WPF)
https://www.sysnet.pe.kr/2/0/11802

안녕하세요.

디비 조회 작업 동안 로딩중을 띄우고 싶습니다.

두 개의 윈도우를 각각 실행하는 방법(Windows Forms, WPF)이걸 보고 하는 것 같은데 잘안되서 질문드립니다.

구조는
MainWindow
 MainViewModel
  ApiService

이렇습니다.

기존구조:
MainViewModel isbusy가있고 로딩중 UI 요소와 바인딩 되어있습니다.
MainViewModel 버튼을 클릭을 하면
List<string> lists= Task.Run(() => _apiService!.GetAsync()).Result;
이렇게 결과 값을 기다리고
UI요소에 업데이트 해줬습니다.

로딩중 추가

        private void threadFunc()
        {
            IsBusy = true;

            둘 다 해봄
            System.Windows.Threading.Dispatcher.Run();
            Dispatcher.CurrentDispatcher.Invoke((ThreadStart)(() => { }), DispatcherPriority.ApplicationIdle);
        }


MainViewModel 버튼을 클릭을 하면

IsBusy = true;
Thread waitThread = new Thread(threadFunc);
            waitThread.SetApartmentState(ApartmentState.STA);
            waitThread.Start();

List<string> lists= Task.Run(() => _apiService!.GetAsync()).Result;
이렇게 결과 값을 기다리고
isbusy = false;
UI요소에 업데이트 해줬습니다.

List<string> lists= Task.Run(() => _apiService!.GetAsync()).Result;
이 조회가 끝나고 로딩중이 나오더라구요...

가이드 부탁드립니다.











[최초 등록일: ]
[최종 수정일: 11/30/2022]


비밀번호

댓글 작성자
 



2022-11-30 01시46분
Visual Studio에서 로딩해 F5 키를 누르면 재현이 되는 프로젝트를 올려주세요.
정성태

NoWriterDateCnt.TitleFile(s)