두 개의 윈도우를 각각 실행하는 방법(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]