C# 上位机学习之简单粗暴法1_定时器及定时任务方法

本文讲述了作者在学习C#上位机开发中,如何使用简单粗暴的方法解决画时刻线和定点定时问题,通过每秒定时器实现整点、半点和特定时间点的任务触发。虽然代码基础,但适用于简单功能,展示了观察者模式和异步委托的基本应用。
摘要由CSDN通过智能技术生成

       这段时间在学写C#上位机,在实际开发过程中,遇到各种各样的的功能需求及想法需要实现,一边学一边编写程序,个人觉得有点意思,就算做个笔记吧。也就是这系列文章的出发点,我命名为简单粗暴法系列。

关键词就是:简单、粗暴

        回到正题,开发过程中,遇到2个问题:

1、画时刻线的问题,即每半小时及整点画下时刻线,用在生产线每天的状态时间轴(正常、待料、故障等)上标识时刻。

2、每日班后(例如18:30)需要把当日状态时间轴记录起来。

查询网上定时方法有各种各样、各种委托与事件,自己整理后得到最简单粗暴方法:

直接上代码:

          这段代码要放在每秒的 timer_Tick事件里去,我们编写上位机一般都会用一个timer,用于在窗体某个角落显示实时时间,所以每秒定时器一般都会有,直接放进去就好了,以上这段实现每整分钟及半分钟的事件。

 

          这段代码同样也需要放在每秒的 timer_Tick事件里去,以上这段实现每整点及每半小时的事件。

用这段代码来划时刻线,效果如下图:(整点为黑长线段,半小时为红短线段)

以上实现了画时刻线的功能,结合其他事件将生产线每班状态画满,即可实现产线时间轴功能。

以下为定点定时功能:

     这段代码实现中午12点吃饭事件,及18:30下班回家事件。

结合以上3段代码,即可实现每段时间、定时定点、指定时间等各种定时运用场景的要求了。

是不是很简单粗暴?

代码来源出处:作者陈极光C#固定时间执行指定事件(观察者模式+异步委托) - 陈极光 - 博客园 (cnblogs.com)

      当然以上代码缺点很多,例如代码比较low、单线程阻断、没有使用委托与事件,也没有用异步的方法等等,用于简单功能还是可以的,也算符合题意“简单粗暴”了。

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值