泛型委托+异步回调+超时机制
写法一:(泛型委托)
Func<string, object> albumFunC = new Func<string, object>(GetCacheObject);//泛型委托
object result =albumFunC("参数值");
写法二: (泛型委托+超时机制)
Func<string, object> albumFunC = new Func<string, object>(GetCacheObject);/
IAsyncResult ar= albumFunC.BeginInvoke("参数值", null, null);//此时CLR会打开一个新的线程去异步执行委托的方法
//以下语句为等待返回结果的超时机制
object result=null;
ar.AsyncWaitHandle.WaitOne(1000, false);//1秒超时
if (ar.IsCompleted)
{
result = albumFunC.EndInvoke(ar);
}
return result;
写法三:(泛型委托+异步回调)
Func< string, object > albumFunC = new Func<string,object>(GetAlbumStyle);
IAsyncResult ar = albumFunC.BeginInvoke("参数值", new AsyncCallback(CallBackAlbumMethod), albumFunC);//异步回调
void onComplete(IAsyncResult ar)
{
Func<string, object> andl = (Func<string, object>)ar.AsyncState;
object result=andl.EndInvoke(ar);
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步