泛型委托+异步回调+超时机制
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);
}
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);
}
相关文章推荐
- Dubbo超时重试机制带来的数据重复问题
- 剖析php脚本的超时机制
- Hystrix-超时机制和断路器模式
- 正则表达式超时退出机制
- 您还有心跳吗?超时机制分析
- Dubbo超时和重连机制
- Netty的超时机制
- C# Socket连接请求超时机制
- 超时机制处理
- 深入理解JDBC及其超时机制
- [译]C# Socket连接请求超时机制
- perl实现超时机制综述
- Socket超时机制
- Android BLE项目中相应的超时处理机制
- 使用druid连接池的超时回收机制排查连接泄露问题
- 验证阻塞队列超时机制
- Dubbo超时机制导致的雪崩连接
- php脚本运行时的超时机制详解
- (HttpClient超时机制)timeout调度算法探讨
- HttpClient超时机制