您的位置:首页 > 其它

泛型委托+异步回调+超时机制

2012-08-10 12:46 106 查看
写法一:(泛型委托)

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);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: