C# 方法執行超時處理


封裝了一個方法,用於處理一些需要判斷是否執行超時了的操作

 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, () =>
                        {
                            //這里時執行的方法 必須要有返回

                        });

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM