0
응용 프로그램 시작시 DB에서 일부 데이터를로드하려고합니다.시작시 WPF 응용 프로그램에서의 긴 작업
내가 원하는 것은 메인 윈도우를 먼저 진행률 표시 줄로 표시하고 작업이 실행되는 동안 "데이터로드 중"과 같은 상태 텍스트를 표시하는 것입니다.
어떻게해야합니까? 내가 MainWindow
에 백그라운드 작업자가
protected void Application_Startup(object sender, StartupEventArgs e)
{
DbConn= new DBConnection();
System.Threading.Thread.CurrentThread.CurrentUICulture = DbConn.GetLocalCulture();
System.Threading.Thread.CurrentThread.CurrentCulture = System.Threading.Thread.CurrentThread.CurrentUICulture;
main = new MainWindow();
main.Show();
}
, 거기에 내 방 창문 모델을 초기화 :
나는 Application_Startup
에서 내 DB 연결 (DbConn
)와 MainWindow
자체를 initilizing있어
public MainWindow()
{
DataContext = new Models.MyModel(App.DbConn);
InitializeComponent();
BgWLoad = new BackgroundWorker();
BgWLoad.WorkerSupportsCancellation = false;
BgWLoad.DoWork += BgwLoad_DoWork;
BgWLoad.ProgressChanged += BgwLoad_ProgressChanged;
BgWLoad.RunWorkerCompleted += BgwLoad_RunWorkerCompleted;
}
어디 내 작업자 (BgWLoad.RunWorkerAsync
)를 실행해야합니까?
DB에서 선하 데이터의 논리
현재 MyModel 측에 배치되고, 진행은 콜백으로보고됩니다private void BgwLoadQK_DoWork(object sender, DoWorkEventArgs e)
{
StatusText.Text = Properties.Resources.msgLoadingKeySets;
Model.Init((double progress) =>
{
((BackgroundWorker)sender).ReportProgress(Convert.ToInt32(progress));
});
}
이 OK가 그렇게 할 수 있습니까?
지구상에서 모범 사례를 사용하여 어떻게 구성해야합니까?