/// <summary> /// 异步代理方法 /// </summary> /// <typeparam name="TPara">请求参数类型</typeparam> /// <typeparam name="TResult">响应结果</typeparam> /// <param name="GetData">请求方法</param> /// <param name="para">请求参数</param> public static void CheckPublicAsync <TPara, TResult>(Func <TPara, TResult> GetData, TPara para) { //实例化代理 CheckPublicDelegate <TPara, TResult> md = new CheckPublicDelegate <TPara, TResult>(CheckSend); //实例一个回调代理 AsyncCallback callback = new AsyncCallback(CallBackMethod <TPara, TResult>); //开始执行异步方法 md.BeginInvoke(GetData, para, callback, md); }
/// <summary> /// 回调方法 /// </summary> /// <typeparam name="TPara">请求参数类型</typeparam> /// <typeparam name="TResult">响应结果</typeparam> /// <param name="Ias">委托操作状态</param> private static void CallBackMethod <TPara, TResult>(IAsyncResult Ias) { CheckPublicDelegate <TPara, TResult> md = (CheckPublicDelegate <TPara, TResult>)Ias.AsyncState; md.EndInvoke(Ias); }