业务场景:有主表、子表两个GridView点击主表的行,会自动读取主表对应的子表数据

但是如果反复点击会导致反复读取,其实反复点击的时候只需要最后一次执行查询,前面的几次点击都是无意义操作

根据这一需求设计了一个函数:

private static List<System.Windows.Forms.Timer> Tup = new List<System.Windows.Forms.Timer>();
/// <summary>
/// 延时执行
/// </summary>
/// <param name="easySub">需要执行的代码/函数</param>
/// <param name="keyName">任务分组</param>
/// <param name="timeOut">等待timeOut时间后执行代码,如果当前分组中进入新的任务则前面的任务放弃,执行新的任务</param>
/// <param name="chkStatus">等待一定时间且循环验证chkStatus</param>
public static void DelayRun(Action easySub, string keyName, int timeOut = 501)
{
     System.Windows.Forms.Timer lastTimer = Tup.Find(t => t.Tag.ToStringEx() == keyName);
     if (lastTimer != null)
     {
         lastTimer.Enabled = false;
         lastTimer.Enabled = true;
     }

if (lastTimer == null)
     {
         System.Windows.Forms.Timer t = new System.Windows.Forms.Timer();
         t.Interval = timeOut;
         t.Enabled = true;
         t.Tag = keyName;
         Tup.Add(t);
         t.Tick += delegate (object sender, EventArgs e)
         {
             ((System.Windows.Forms.Timer)sender).Enabled = false;
             string name = keyName;
             easySub();
         };
     }
}

转载于:https://www.cnblogs.com/myrapid/p/10843757.html

延时执行函数:前浪死在沙滩上相关推荐

  1. 长江后浪推前浪,前浪死在沙滩上。本人在沙滩上又死了一回

    面对初中就开始学习python的大一学弟,其写代码的能力不是一般的唬,还把自己的代码用svn当服务器给别人修改.而且还是vim控. 一下就是现在和他合作的case写的代码的结构,堪比正规大公司,秒杀一 ...

  2. 那些编程语言中的“后浪”都怎么样了:Swift 成功把“前浪”拍在沙滩上

    Python实战社群 Java实战社群 长按识别下方二维码,按需求添加 扫码关注添加客服 进Python社群▲ 扫码关注添加客服 进Java社群▲ 作者 | oschina 来源 | 开源中国 近日, ...

  3. HTML5凭什么将Flash“拍死”在沙滩上?

    放在最前面希望不会影响你的观看,文章很不错哦! 自己整理了一份2018最全面前端学习资料,从最基础的HTML+CSS+JS [炫酷特效,游戏,插件封装,设计模式]到移动端HTML5的项目实战的学习资料 ...

  4. js Function对象扩展与延时执行函数实例代码

    网页特效 function对象扩展与延时执行函数实例代码 function.prototype.delay=function(this1,timeout){ this1=this1||null; ti ...

  5. 前端构建工具之争——Webpack vs Gulp 谁会被拍死在沙滩上

    阅读目录 理想的前端开发流程 Gulp 为何物 webpack 又是从哪冒出来的 结论 文章有点长,总共 1800 字,阅读需要 18 分钟.哈哈,没耐心的直接戳我到高潮部分. 理想的前端开发流程 在 ...

  6. js自执行函数前加个分号(;!function(){}();)是什么意思?

    ;(function(){//这应该是一个某系统的插件js //具体功能代码... })(); 从语法上来开,Javascript中分号表示语句结束,在开头加上,可能是为了压缩的时候和别的方法分割一下 ...

  7. 国产IT彪起来了,后浪要将前浪拍死在沙滩上

    浪潮在广州浪潮服务器存储全国合作伙伴大会中再一次自信发声:2016年将继续保持中国服务器市场第一,存储进入中国市场前五. 作为去IOE和国产化的受益者,浪潮等国产厂商曾经受到不少质疑,国产服务器,能够 ...

  8. js关于setTimeout实现延时执行函数并进行传参

    传参方式一:setTimeout第一个参数可以是一段JS的代码字符串片段,第二个参数为延迟时间单位ms <script> function ab() { var a=1; var b =1 ...

  9. python延时执行函数_一日一技:在 Python 中实现延迟调用

    一日一技:在 Python 中实现延迟调用 收录于话题 #你不知道的 Python 71个 摄影:产品经理 产品经理的生日餐 熟悉 Golang 的同学都知道,Golang 里面有一个关键词叫做def ...

最新文章

  1. 因贡献Linux社区被Linus关注,受公司10万期权奖励!酷派重回大众视野...
  2. USB设备被识别流程【转】
  3. C# 中的委托和事件[转]
  4. 谷歌开源3D舞蹈生成模型FACT,舞姿清奇!
  5. CF886E Maximum Element(dp、组合数学)
  6. web前端常用知识点
  7. 中国直销未来三五年的发展趋势[转]
  8. aqs clh java_Java并发包源码学习之AQS框架(二)CLH lock queue和自旋锁
  9. 厨房炒锅行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  10. MTK:MVRAM操作
  11. 千月最新影视APICLOUD完整安卓程序源码+UI非常不错
  12. 今日头条、抖音推荐算法原理全文详解!
  13. 对于程序员的技术发展和职业规划能否给大家一些建议呢?
  14. Windows XP控制台图解
  15. 小程序,微信支付:支付失败,商户号该产品权限未开通,请前往商户平台 产品中心检查后重试
  16. 中台战略全解读(三):业务中台建设
  17. m基于FPGA的通信数据帧加扰解扰verilog实现,包含testbench
  18. 语言模型训练工具SRILM详解
  19. Google首席决策师告诉你AI和数据科学团队需要哪10种角色?
  20. 电脑软件:推荐七款实用的效率神器

热门文章

  1. Vuforia官方文档-03-Vuforia Engine 生命周期
  2. php062企业设备管理系统,晨科设备管理系统,建立规范的企业设备管理体系
  3. 单片机程序架构之----时间片轮询法
  4. 艾伟_转载:一次挂死(hang)的处理过程及经验
  5. 插值、平稳假设、本征假设、变异函数、基台、块金、克里格、线性无偏最优…地学计算概念及公式推导
  6. Android studio下JNI(NDK)开发
  7. linux小火车指令,Linux 好玩的小命令–linux小火车
  8. 数据库设计(建模)PowerDesigner
  9. 怎样才能提高视频转码后的清晰度?
  10. 微博敲定在香港上市发行价:定价相对下降三成,散户认购情况惨淡