//声明委托
public delegate void AsyncEventHandler (object sender);
[STAThread]
public void DownLoadToExcel (object sender)
{
//实例委托
AsyncEventHandler asy = new AsyncEventHandler (downLoad);
//异步调用开始,没有回调函数和AsyncState,都为null
IAsyncResult ia = asy.BeginInvoke (sender,new AsyncCallback (CallbackMethod),asy);
}
//回调方法
public void CallbackMethod (IAsyncResult ar)
{
AsyncEventHandler dlgt = (AsyncEventHandler)ar.AsyncState;
dlgt.EndInvoke (ar);
MessageBox.Show ("下载完成");
}
//异步执行的方法
public void downLoad (object sender){
DataTable dt = selectAllPayLog (this.dateTimestart.Value,this.dateTimeEnd.Value);
if (dt != null && dt.Rows.Count != 0)
DataBaseToExcel.DataToExcel (dt,@"E:\DataToExcel" + DateTime.Now.ToString ("yyyyMMdd") + ".xls");
}