首页 > 编程语言 >C# 方法执行超时处理

C# 方法执行超时处理

时间:2024-02-25 21:00:45浏览次数:27  
标签:RunOK 超时 return C# var 执行 wait

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

标签:RunOK,超时,return,C#,var,执行,wait
From: https://www.cnblogs.com/mayishangtaijie/p/18033037

相关文章

  • Go 100 mistakes - #71: Misusing sync.WaitGroup
       ......
  • The 2023 ICPC Asia Jinan Regional Contest (The 2nd Universal Cup. Stage 17: Jina
    Preface趁着开学前最后一天再凑一场训练,今天这场手感不错前面的题都是一遍过最后靠着前期的手速7题苟进Au区,后面90min徐神B题没有Rush出来,思路啥都是对的就是一点细节没写好A.ManyManyHeads首先发现我们可以将所有相邻的同类型括号设为一对,这样一定能得出一个合法的串考......
  • Codeforces 587D Duff in Beach
    不难发现可以按长度为\(n\)分为段。考虑到\(l\)其实并没什么大用,只是说对于选出来的\(b_{1\simx}\)可以都整体移任意段,只需要保证在范围内就行了。进一步的,发现只需要看最后一个数的取值得到其最大可以在的段数即为\(d\),那么移动的方案数就为\(d-x+1\)。还有的一......
  • Go - #70: Using mutexes inaccurately with slices and maps
      ......
  • 关于构建一个可视化+code系统的思路
    思路是有参考UE的现有功能,加之前的逻辑。大概分为三个模块:底层, 即native层,这一层实际上分为三个部分: 1.GUI层的解析,2.数据存储  3.Code的解析这三部分关键在于他们的内存对得上,互相可以Access   对Code和GUI层导出 variable,和function,这个可以用反射或者......
  • C# WinForm中 获得当前鼠标所在控件 或 将窗体中鼠标所在控件名显示在窗体标题上
    C#WinForm中获得当前鼠标所在控件或将窗体中鼠标所在控件名显示在窗体标题上原文地址:http://www.cnblogs.com/08shiyan/archive/2011/04/14/2015758.html/***********************课题:将窗体中鼠标所在控件名显示在窗体标题上*作者:ZAXX*QQ:94027486*本课题可......
  • C++U6-05 - 动态规划算法入门
    目标:动态规划     兔子数列的每一项都是前两项之和,公式为f[n]=f[n−1]+f[n−2]。#include<bits/stdc++.h>usingnamespacestd;intmain(){intf[105],n;f[1]=1;f[2]=1;cin>>n;for(inti=3;i<=n;i++){......
  • Elastic学习之旅(4)ES文档CRUD操作
    大家好,我是Edison。上一篇:ES必备基础概念一览ES文档CRUD介绍和MongoDB一样,文档的CRUD是我们学习ES的必备操作,下图展示了ES文档的CRUD概要:从上图可以知道,ES文档除了CRUD外,还多了一个Index操作,它的功能Create类似,但又有点不同:Create-如果ID存在,则会失败;否则新增成功;Ind......
  • Go 100 mistakes - #69: Creating data races with append
        ......
  • C++U5-第05课-广度优先搜索2
    学习目标 广度优先搜索的思路复习 [【广度优先搜索(二)】图像渲染]  【题意分析】从需要上色的点开始,将所有与他相连接的点全部涂上相同的颜色【思路分析】我们从给定的起点开始,进行广度优先搜索。每次搜索到一个方格时,如果其与初始位置的方格颜色相同,就将该......