.Net(c#)如何实现任务系统?

MR00009 2015-09-22 01:16:24
程序大概流程,如图所示。

...全文
930 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
救赎呐 2019-06-12
  • 打赏
  • 举报
回复
大佬们,我一个初学者,请教一下,不会实现呀
大鱼> 2018-01-20
  • 打赏
  • 举报
回复
弄清楚流程图,实现起来就很简单了。
  • 打赏
  • 举报
回复
稍微正常点的应用在执行任务时都是并发多线程的,而你这个流程图并不具有半点并发多线程的逻辑,所以图基本上是可以废弃了。
  • 打赏
  • 举报
回复
在内存中保存一个对象数据集合,并且for循环它,有什么可纠结的呢?大不了需要在遍历时放到 lock(){....} 管理控制区中同步一下处理过程。其实所谓的“队列、循环”不占算法的十分之一,技术点并不在这里。
俊sang 2018-01-19
  • 打赏
  • 举报
回复
题主,这个你弄出来了吗,能发个邮箱参考下吗,刚需,或者给个联系方式,谢谢
大然然 2015-09-30
  • 打赏
  • 举报
回复
引用 5 楼 xgp0009 的回复:
[quote=引用 4 楼 skysurvivor 的回复:] 建一张任务表,规定好是否重复执行,执行时间,下次执行时间,然后timer启动不断去扫面这张表就是了
谢谢。 那这张表最好用什么方式呢?数据库、xml、还是直接放在内存里面? 用来循环遍历的队列,用List,还是ConcurrentQueue?[/quote] -------------------------------------------------------------- 任务表,最后一次执行时间,执行频率(每隔N分钟),是否重复执行可要可不要因为既然是任务就多半是重复的吧,,是否正在执行,。。。。其他字段自己看着办, sql,sqllite 都可以,这个不是重点,程序启动后扫描这个表,用timer, while true随便,不过建议用while true,因为每个任务执行间隔可能不一样,扫描后得到当前时间,在判断是否已经达到执行频率,如果达到就开起thread (一定要开启线程,让N个任务同时走,不要让走A任务的时候耽误B任务,切记),执行,同时把该正在执行的任务状态修改了。。。。。。 执行后不管是执行成功或者是执行失败在把状态修改回来。 特别注意一点,程序开始的时候把这个表所有执行状态都修改为" 没有执行" ,防止上次正在执行任务的时候程序挂了或者电脑重启,造成状态值没有被改回来而永远不会激发任务。
joyhen 2015-09-23
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
引用 6 楼 Joyhen 的回复:
Quartz.net:https://github.com/quartznet/quartznet
+1,建议了解下这个
MR00009 2015-09-22
  • 打赏
  • 举报
回复
引用 4 楼 skysurvivor 的回复:
建一张任务表,规定好是否重复执行,执行时间,下次执行时间,然后timer启动不断去扫面这张表就是了
谢谢。 那这张表最好用什么方式呢?数据库、xml、还是直接放在内存里面? 用来循环遍历的队列,用List,还是ConcurrentQueue?
skysurvivor 2015-09-22
  • 打赏
  • 举报
回复
建一张任务表,规定好是否重复执行,执行时间,下次执行时间,然后timer启动不断去扫面这张表就是了
MR00009 2015-09-22
  • 打赏
  • 举报
回复
好吧,图片修改。
於黾 2015-09-22
  • 打赏
  • 举报
回复
这程序流程图画的乱糟糟的 判断完毕怎么可以是个双箭头,不是应该循环,回到前面,重新判断吗? 任务都结束了,还能回到判断来? 你先把所有的双箭头都改成单箭头,逻辑就清楚了

110,526

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧