1.定义一个全局 BackgroundWorker
private System.ComponentModel.BackgroundWorker bgMeet0;
2.设置执行耗时的任务为True
bgMeet0 = new System.ComponentModel.BackgroundWorker();
bgMeet0.WorkerReportsProgress = true;
3.开始执行任务事件
bgMeet0.DoWork += new DoWorkEventHandler((s, es) =>
{
this.Dispatcher.Invoke(new Action(() =>
{
//启动动画
}));
#region 耗时操作
//查询SQL 等耗时操作
#endregion
});
4.任务结束事件
bgMeet0.RunWorkerCompleted += new RunWorkerCompletedEventHandler((s, es) =>
{
this.Dispatcher.Invoke(new Action(() =>
{
//结束动画
}));
#region 执行完毕
//将查询的 datatable 赋值到datagrid 等操作
#endregion
});
bgMeet0.RunWorkerAsync();