private bool isSucceed = false;
private string ErrMsg = "";
public delegate void MyInvoke(DataTable dt);
private void btnConfirm_Click(object sender, EventArgs e)
{
this.Enabled = false;
TT();
}
private void TT()
{
BackgroundWorker backgroundWorker = new BackgroundWorker();
backgroundWorker.DoWork += new DoWorkEventHandler(backgroundWorker_DoWork);
backgroundWorker.ProgressChanged += new ProgressChangedEventHandler(backgroundWorker_ProgressChanged);
backgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(backgroundWorker_RunWorkerCompleted);
backgroundWorker.WorkerReportsProgress = true;
backgroundWorker.RunWorkerAsync();
}
private void backgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
try
{
this.frmPaymentList.CloseFrmLoad("frmLoad");
this.Enabled = true;
if (this.isSucceed)
{
CJZFFramework.Provider.FormBase.CJZFMessageBox.ShowTips(this, ErrMsg.Trim());
}
else
{
CJZFFramework.Provider.FormBase.CJZFMessageBox.ShowTips(this, ErrMsg.Trim());
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
private void backgroundWorker_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
if (e.ProgressPercentage == 0)
{
this.isSucceed = true;
}
else
{
this.isSucceed = false;
}
this.ErrMsg = e.UserState.ToString();
}
//多线程执行
private void backgroundWorker_DoWork(object sender, DoWorkEventArgs e)
{
BackgroundWorker backgroundWorker = null;
try
{
backgroundWorker = sender as BackgroundWorker;
CreateBill();
backgroundWorker.ReportProgress(0, "单据导出已完成");
}
catch (Exception ex)
{
backgroundWorker.ReportProgress(1, "导出单据失败");
}
}
private void CreateBill()
{
//创建单据….
if(true)
{
DataTable rt = new DataTable();
SetSource(rt);
}
}
private void SetSource(DataTable dt)
{
if (gvCreateBillLog.InvokeRequired)
{
MyInvoke _myInvoke = new MyInvoke(SetSource);
this.Invoke(_myInvoke, new object[] { dt });
}
else
{
this.gvCreateBillLog.DataSource = dt;
}
}