C#列表 定时器的管理

上一篇文章提到列表定时器,后来在开发中,项目中增加了 延时功能。

问题来了

我如何对已经运行的Timer 进行管理呢

思路:初始化,循环实体对象的时候,动态创建n个Timer

当某个属性的值变化时,就将对应的Timer 清除,重新创建一个Timer

下面看看,我改进的Timer

function
Timer_V1(itemid,
timeridname)
{

if
(eval("boo"
+
itemid +
"==false"))
{

var
temp =
$(‘#TotalSeconds‘
+
itemid).val();

eval("maxtime"
+
itemid +
"="+temp)

eval("boo"
+
itemid +
"=true")

}

if
(eval("maxtime"
+
itemid +
">0"))
{

var
_days =
eval("maxtime"
+
itemid +
"/(3600 * 24)");

days
=
Math.floor(_days);

var
_hours =
eval("(maxtime"
+
itemid +
" - "
+
days +
" * 3600 * 24) / 3600");

hours
=
Math.floor(_hours);

var
_minutes =
eval("((maxtime"
+
itemid +
" - "
+
days +
" * 3600 * 24) - "
+
hours +
" * 3600) / 60");

minutes
=
Math.floor(_minutes);

var
_seconds =
eval("maxtime"
+
itemid +
" % 60")

seconds
=
Math.floor(_seconds);

msg
=
"Time Left:"
+days+"d
"
+hours+"h
"+minutes+"m
"+
seconds +
"s ";//动态显示剩余时间。

$(‘#time_show‘
+
itemid).html(msg);

eval("maxtime"
+
itemid +
"--");

}

else
{

eval("clearInterval("
+
timeridname +
")");

$(‘#time_show‘
+
itemid).html(‘Deal
Over!‘);

PartRefresh_Inactive(itemid);

}

}

<script src="@Url.Content("~/Scripts/countdown_Auction1.0.js")"></script>  //界面引用

<div class="row">

@foreach (var item in Model.OrderBy(m => m.ActualEndTime))

{

<div class="col-xs-3" style="margin-top:10px;margin-left:5px">

<div class="container time-item" style="text-align:center">

<strong [email protected]("time_show" + item.ItemID)></strong>

<input type="hidden" [email protected]("ActualEndTime" + item.ItemID) value="@item.ActualEndTimeStr" /> //记录最新的结束时间

<input type="hidden" [email protected]("TotalSeconds" + item.ItemID) value="@item.TotalSeconds" />    //从服务器取来的总秒数

</div>

<!--动态创建Timer-->

<script type="text/javascript">

var [email protected];

eval("var maxtime" + itemid + "=0");

eval("var timer" + itemid + ";");

eval("var boo" + itemid + "=false;");

eval("timer" + itemid + "=setInterval(\"Timer_V1(" + itemid + ",timer" + itemid+")\",1000);");

</script>

<div>

}

</div>

<script type="text/javascript">

//修改列表的CurrentPrice

function ChangeData(jsonData) {

var obj = $.parseJSON(jsonData);

var itemid=obj.ItemID;

var ActualEndTime_Orion = $("#ActualEndTime" + itemid).val();

var ActualEndTime_New = obj.ActualEndTimeStr;

if (ActualEndTime_Orion != ActualEndTime_New) {

//清除定时器

eval(" window.clearInterval(timer"+itemid+")");

//重置定时器

$(‘#TotalSeconds‘ + itemid).val(obj.TotalSeconds);

eval("boo" + itemid + "=false;");

eval("timer" + itemid + "=setInterval(\"Timer_V1(" + itemid + ",timer" + itemid+")\",1000);");

//记录最新的时间

$("#ActualEndTime" + itemid).val(ActualEndTime_New);

}

}



时间: 2024-10-04 11:26:00

C#列表 定时器的管理的相关文章

服务器定时器的管理优化(思路借鉴)

作为一个游戏服务器,必然有很多定时器的使用,算是游戏服务器开发的基础模块,我们经常需要在我们预期的某个时间点执行某项特定的操作.比如每天M点开启某个活动,N小时后之后刷新排行榜等等.这些功能通常需要定时器控制,之前我们的服务器代码中每加一个延迟执行的功能就启动一个定时器,这样到最后往往代码特别臃肿,而且定时器时稀缺资源,过多的定时器必然导致效率问题,于是要想办法优化. 想要优化定时器就要看定时器一共有多少种: 1.只执行一次的定时器,比如60秒后执行操作A. 2.循环执行的定时器,比如每隔30分

IOS OC 多任务定时器 NSRunLoop 管理 NSTimer

下面有两种做法 1.使用日期组件 NSDateComponents 2.使用NSString 生成一个日期 //  创建一个日历对象 NSCalendar *calendar = [NSCalendar currentCalendar]; //  创建日期组件 NSDateComponents *dc = [[NSDateComponents alloc]init]; //  设置当前时间 [dc setCalendar: calendar]; [dc setYear: 2014]; [dc s

定时器的管理

所谓定时器的管理就是.就是确定元素停止的位置,还有对定时器返回值的管理 关于定时器返回值的建议:一般将定时器的返回值设置为运动元素的一个属性.也就是说 当运动的元素是一个div,那就在div元素上添加一个timer属性,这样可以避免污染变量.而且在对象上添加属性,它的值会被记录知道,对象被销毁.所以不用再全局定义一个变量 oBtn1.onclick = function () { clearInterval( oDiv.timer );//不用在全局设置 oDiv.timer = setInte

OSAL之时间管理,软件定时器链表管理

读源码写作,尊重原创: 本博文根据蓝牙4.0, 协议族版本是1.3.2 OSAL的时钟实现在OSAL_CockBLE.c与OSAL_Clock.h两个文件中.OSAL支持完整的UTC(世界统一时间),以2000年1月1日00:00:00为时间起点,可以精确到年.月.日.时.分.秒的时间值. 背景知识 // number of seconds since 0 hrs, 0 minutes, 0 seconds, on the 1st of January 2000 UTC存储自2000年1月1日开

evpp设计细节系列(1):利用 enable_shared_from_this 实现一个自管理的定时器

0. 前言 https://github.com/Qihoo360/evpp是一个高性能的Reactor模式的现代化的C++11版本的高性能网络库.该项目中有一个InvokeTimer对象,接口头文件详细代码请参见https://github.com/Qihoo360/evpp/blob/master/evpp/invoke_timer.h.它是一个能自我管理的定时器类,可以将一个仿函数绑定到该定时器上,然后让该定时器自己管理并在预期的一段时间后执行该仿函数. 现在我们复盘一下这个功能的实现细节

Linux内核——定时器和时间管理

定时器和时间管理 系统定时器是一种可编程硬件芯片.它能以固定频率产生中断.该中断就是所谓的定时器中断.它所相应的中断处理程序负责更新系统时间,还负责执行须要周期性执行的任务. 系统定时器和时钟中断处理程序是Linux系统内核管理机制中的中枢. 另外一个关注的焦点是动态定时器--一种用来推迟运行程序的工具. 比方说.假设软驱马达在一定时间内都未活动,那么软盘驱动程序会使用动态定时器关闭软驱马达. 内核能够动态创建或销毁动态定时器. 内核中的时间观念 内核在硬件的帮助下计算和管理时间. 硬件为内核提

向下之旅(十四):定时器和时间管理

相对于事件驱动而言,内核中有大量的函数都是基于时间驱动的.有些函数是周期执行的,有些操作是需要等待一个相对的时间后才运行.除了上述两类函数需要内核提供时间外,内核还必须管理系统的运行时间以及当前日期和时间. 其中相对时间和绝对时间是不同的,若某个事件在5秒后被调度执行,那么系统所需要的是——相对时间(相对现在起5秒).如果涉及到日期和时间,内核不但要计算流逝的时间还要计算绝对时间. 周期性产生的事件和推迟执行的时间之间的差别:前者比如每10毫秒一次——都是由系统定时器驱动的.系统定时器是一种可编

《Linux设计与实现》学习笔记——定时器和时间管理

基本概念 系统定时器 一种可编程硬件芯片,能够以固定频率产生中断,定时器中断,他的中断处理程序负责更新系统时间,负责执行需要周期性运行的任务. 触发中断的频率即节拍率,可以编程预定. 动态定时器 一种用来推迟执行程序的工具 HZ 系统定时器的频率(节拍率)是静态预处理定义的. HZ数大小确定应考虑的因素: HZ越高: 优势:提高时间驱动事件的准确度:调度的粒度更细,进程抢占更准确: 内核定时器以更高的频度和准确度执行. 劣势:节拍率越高,时钟中断程序占用处理器时间越多:并且频繁打乱处理器cach

μC/OS-Ⅲ系统的时间管理函数和定时器

一.时间管理函数 μC/OS-Ⅲ系统提供一些列时间管理服务函数: 1.OSTimeDly():任务延时n个时钟节拍. 2.OSTimeDlyHMSM():任务延时指定的时间,采用“时:分:秒:毫秒”方式指定. 3.OSTimeDlyResume():恢复被延时的任务.注意,一个任务利用这个函数恢复其他函数时,被恢复任务不知道自己是被其他任务恢复,会任务是延时结束而得到恢复.所以此函数要谨慎使用. 4.OSTimeGet():获取当前时钟节拍计数器的值. 5.OSTimeSet():设置时钟节拍计