封装了一个方法,用于处理一些需要判断是否执行超时了的操作

 internal static T TimeoutCheck<T>(int ms, Func<T> func)
{
var wait = new ManualResetEvent(false);
bool RunOK = false;
var task = Task.Run<T>(() =>
{
var result= func.Invoke();
RunOK = true;
wait.Set();
return result;
});
wait.WaitOne(ms);
if (RunOK)
{
return task.Result;
}
else
{
return default(T);
}
}

  

调用:

               //1000毫秒检测 超时认为检测失败
var checkResult = Tools.TimeoutCheck(1000, () =>
{
//这里时执行的方法 必须要有返回 });

  

最新文章

  1. (2)WebAPI的增删改查
  2. Gravatar注册
  3. Excel 点滴积累
  4. (转) 浅析HTML5在移动应用开发中的使用
  5. Eclipse配置信息
  6. 用JSON数据向已定义列的表格添加数据行
  7. Js获取Cookie值的方法
  8. spring-- 事务--9
  9. 《工作型PPT设计之道》培训心得
  10. 《APUE》读书笔记第十一章-线程
  11. 关于JS面向对象中原型和原型链以及他们之间的关系及this的详解
  12. 集合set
  13. 20165325 2017-2018-2 《Java程序设计》第七周学习总结
  14. Python基础之带你快速掌握列表的常用方法
  15. ABAP 中JSON格式的转换与解析
  16. WPF Dispatcher介绍
  17. pytorch统计模型参数量
  18. C# 在网页中将Base64编码的字符串显示成图片
  19. 两周以来的学习成果&amp;遇到的问题及解决:
  20. Python入门系列教程(三)列表和元组

热门文章

  1. [RN] React Native 获取地理位置
  2. Spring注解和标签的比较说明
  3. Java 并发系列之九:java 原子操作类Atomic(13个)
  4. nginx配置神器
  5. c语言之连接符
  6. Sourcetree 集成 Azure DevOps Server(Git)
  7. 《Linux就该这么学》培训笔记_ch12_使用Samba或NFS实现文件共享
  8. 扫描工具Nikto-安全牛课堂网络安全之Web渗透测试练习记录
  9. Springboot Actuator之十二:actuator aop
  10. 用结构体解析Pascal字符串