码迷,mamicode.com
首页 > Windows程序 > 详细

C# 方法执行超时处理

时间:2019-11-03 18:37:33      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:div   reset   highlight   返回   func   int   需要   set   一个   

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

 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, () =>
                        {
                            //这里时执行的方法 必须要有返回

                        });

  

C# 方法执行超时处理

标签:div   reset   highlight   返回   func   int   需要   set   一个   

原文地址:https://www.cnblogs.com/yesicoo/p/11788236.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!