1定义委托
public delegate int OrderBackAsyncExecuteHandler(List<OrderBackModel> objList, List<OrderBackModel> objErrorList, string bankId, string bankAccountNo, string fileName, short userId, string realName);//批量异步执行
2引用
OrderBackAsyncExecuteHandler method = OrderBackAsyncExecute;//异步调用的方法,方法要定义成async
OrderBackAsyncExecuteHandler handler = new OrderBackAsyncExecuteHandler(OrderBackAsyncExecute);
IAsyncResult result = handler.BeginInvoke(objList, objErrorList, bankId, bankAccountNo, file.FileName, userId, realName, new AsyncCallback(Callback), null);
3回调
public void Callback(IAsyncResult asyncResult)
{
try
{
OrderBackAsyncExecuteHandler handler = (OrderBackAsyncExecuteHandler)((System.Runtime.Remoting.Messaging.AsyncResult)asyncResult).AsyncDelegate;
LogHelper.Write("批量执行回调结果:" + handler.EndInvoke(asyncResult));//注意: BeginInvoke和EndInvoke必须成对调用.即使不需要返回值,但EndInvoke还是必须调用,否则可能会造成内存泄漏。
//(asyncResult.AsyncState as AddHandler).EndInvoke(asyncResult);
LogHelper.Write("批量执行释放资源成功。");
}
catch (Exception ex)
{
LogHelper.Write("批量执行释放资源失败。" + ex);
}
}