アプリケーションの起動時にDBからデータをロードする必要があります。起動時に長時間動作するWPFアプリケーション
私が望むのは、メインウィンドウを最初に表示し、進行状況バーと、操作が実行されている間に "データがロード中"のようなステータステキストを表示することです。
どうすればよいですか?
私はApplication_Startup
から自分自身を私のDB接続(DbConn
)をinitilizingと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();
}
私はMainWindow
にバックグラウンドワーカーを持っており、そこに私の窓モデルを初期化:
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;
}
I私の労働者(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]このですか?
または、これはベストプラクティスを使用してどのように構成する必要がありますか?