有些系统中的计划任务功能的思路是什么?? 用户在后台aspx界面 添加任意多个任务, 然后系统在定期在执行这些任务。是不是一个任务是一个线程。 如果执行时间到了,那么有10 个任务,就有10线程在服务器上同时执行任务? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 aspx里面做的任务 不用开线程吧不知道楼主说的是哪种任务?需要在服务器上运行的任务?还是数据库中的操作? 用户在aspx页添加的是什么任务? 也可以直接实现到windows的计划任务,不过这样不安全。自己写一个服务。不停的循环检测任务列表,有满足要求的就执行。 WEB程序中自己写一个线程。不停的循环检测任务列表,有满足要求的就执行。-------------------------------------------------------我就是这个意思, 如果有10个任务都是在0 点执行。 一到0点,10个任务要同时执行,就要开10个线程? 是这个理把? 如果一个个任务执行,如果第1个任务执行时间比较长, 等到再执行第2个任务,时间已经不是0点了, 那么第2个任务就不能执行了? 看来只能同时开10个线程了? 是这样吧??? 如果一个个任务执行,如果第1个任务执行时间比较长, 等到再执行第2个任务,时间已经不是0点了, 那么第2个任务就不能执行了?=================不会的, 任务列表是在执行之前获取的,循环体内不需做判断。所以会逐个执行下去,并不是不执行。只是要晚点执行。如果执行时间的需求不是硬性的话无妨。需要注意的是: 条件判断会苛刻点。如下: DateTime.Now >= TaskTime 并且 DateTime.Now - TaskTime < 10s =号有且必须只有一处。并且这个10秒 和间隔的单位必须相同。否则会出现不执行或多执行。 还有就是web请求的处理模式是被动处理。 也就是当0点的时候没有人访问这个web页,程序将不会执行。 你可以在Application_start里new thread(funname)来做一个内置线程或写一个winForm来循环检测该执行哪些任务。 线程崩溃,web服务要挂掉。 winForm不是很方便的获取到当前任务的执行状态 它应该在第二天才会继续执行。同一天不会执行两次。Time.Now >= TaskTime 并且 Time.Now - TaskTime < 10s flag: @1比如每天 0点0分(00:00:00)执行, 循环体检测1次后就sleep(10000)//10秒。 flag: @2在flag @1处,. 如果 条件判断 小于 10秒。 可能一次都不会执行。. 如果 条件判断 大于 10秒。 至少执行一次。可能有两次。. 如果 条件判断 等于 10秒。 每天只会发生一次。你测试一下吧。就知道了。。 sleep的时间间隔 和条件判断的时间单向差值................................^^^^.... 刚特意去查了MSDN,.net里用 Process类实现,它不会一直等待程序的执行。所以用不找考虑的那么复杂。这些process和os都帮你解决了。它的功能很强大。完全可以查找到某个名字的进程是否在执行,和它的状态。 c# BitMap类型,关于return 之前 如何先dispose 注册一个com组件无效 请都一个 asp.net 中 动态加载 DropDownList 的奇怪问题 怎样动态改变iframe 如何实现在网页中打开pdf文件? 急>.<数组成员是托管类型的类要怎么写才合法啊?vc++.net 为什么我的IE的安全级别老是被修改而找不到是哪个程序修改!郁闷 寻求解决方案:如何向数据表中更新image类型的字段 ASHX返回客户端的数据需要写 context.Response.End()吗? 一个简单的问题,请帮忙! 怎样验证TextBox输入的全是数字 模式对话框内编码转换小问题。
=================
不会的, 任务列表是在执行之前获取的,循环体内不需做判断。
所以会逐个执行下去,并不是不执行。只是要晚点执行。
如果执行时间的需求不是硬性的话无妨。
需要注意的是:
条件判断会苛刻点。如下:
DateTime.Now >= TaskTime 并且 DateTime.Now - TaskTime < 10s
=号有且必须只有一处。并且这个10秒 和间隔的单位必须相同。否则会出现不执行或多执行。 还有就是web请求的处理模式是被动处理。 也就是当0点的时候没有人访问这个web页,程序将不会执行。 你可以在Application_start里new thread(funname)来做一个内置线程或写一个winForm来循环检测该执行哪些任务。
线程崩溃,web服务要挂掉。 winForm不是很方便的获取到当前任务的执行状态
同一天不会执行两次。Time.Now >= TaskTime 并且 Time.Now - TaskTime < 10s flag: @1
比如每天 0点0分(00:00:00)执行, 循环体检测1次后就sleep(10000)//10秒。 flag: @2在flag @1处,. 如果 条件判断 小于 10秒。 可能一次都不会执行。
. 如果 条件判断 大于 10秒。 至少执行一次。可能有两次。
. 如果 条件判断 等于 10秒。 每天只会发生一次。你测试一下吧。就知道了。。
................................^^^^....
它不会一直等待程序的执行。所以用不找考虑的那么复杂。这些process和os都帮你解决了。它的功能很强大。完全可以查找到某个名字的进程是否在执行,和它的状态。