首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >第一次运行该函数的Timer.Interval

第一次运行该函数的Timer.Interval
EN

Stack Overflow用户
提问于 2013-06-01 06:22:24
回答 2查看 8.8K关注 0票数 5

我已经创建了一个Windows服务,我需要在其中每天执行任务。为此,我使用了Timer控件。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Timer tm = new Timer();
tm.Elapsed += new ElapsedEventHandler(OnElapsedTime);
tm.Interval = 86400000;

但这里的问题是,在我启动服务后,我必须等待整整1天才能真正调用该函数。

那么,有没有一种方法,在我启动服务的时候,函数就会被调用,而不必等到间隔时间结束?

提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-01 06:27:04

您可以先运行该方法,然后启动计时器。因此,它将进行第一次运行,计时器将在第二天再次运行。

或者创建简单的控制台应用程序来完成此任务。只需使用windows计划任务,您就可以每天运行此exe

另一种选择是在启动计时器后立即调用事件

How to fire timer.Elapsed event immediately

票数 6
EN

Stack Overflow用户

发布于 2013-06-01 07:02:48

有两种方法可以做到这一点。

1) OnElapsedTime中的代码,将其放入另一个方法中,并在启动计时器时立即调用该方法。例如,将代码放在TimerCalled方法中,然后使用以下代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
static void Main(string[] args)
{
    Timer tm = new Timer();
    tm.Elapsed += new ElapsedEventHandler(OnElapsedTime);
    tm.Interval = 86400000;
    TimerCalled();
}

private static void OnElapsedTime(object source, ElapsedEventArgs e)
{
    TimerCalled();
}

2)您可以使用System.Threading.Timer类。你可以这样使用它:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
System.Threading.Timer tm = 
    new System.Threading.Timer(OnElapsedTime, null, 0, 86400000);

但请注意,System.Threading.Timer在单独的线程上运行。因此,任何从该线程更新UI elements的尝试都会导致错误。您应该通过Dispatcher或其他方式将UI元素更新(如果有)委托给UI线程。

更新:如果你想在服务启动几分钟后启动,你可以提供几分钟的延迟:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
System.Threading.Timer tm = 
    new System.Threading.Timer(OnElapsedTime, null, 120, 86400000);
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16869772

复制
相关文章
爬虫的主函数该怎么写
主函数中是将前边写的所有函数汇总,通过多线程,将爬虫稳步有序的进行。 头文件中的那些是之前写好的做引用 用到了多线程技术,在python中,Pool函数是个好的多线程工具 __author__ = 'Lee' from multiprocessing import Pool from beijing_proper import channel_list from items_combination import get_pages_url def get_all_links_from(channel)
98k
2018/04/12
1.5K0
关于docker在windows环境下运行的第一次体验
1.1.           首先是Docker Quickstart启动,如果在虚拟机Oracle VM VirtualBox不存在default虚拟机的情况,会自己创建。
一夕如环
2019/01/30
1.1K0
js自运行函数
学习闭包的基础知识: 函数声明 function fn(){   //这里是代码 }; fn(); //运行fn函数 与上面等价 var fn = function(){   //这里是代码 } fn(); //运行 对fn()进行替换一下 (fn)()等价与fn() (function(){   //这里是代码 })() 测试: (function(){   var str= '自运行'   alert(str);  //就可以运行了 })() alert(str); //不能访问str变量 这样作的好处
deepcc
2018/05/16
3.9K0
到底该如何选择损失函数?
机器学习中的所有算法都依赖于最小化或最大化某一个函数,我们称之为“目标函数”。最小化的这组函数被称为“损失函数”。损失函数是衡量预测模型预测期望结果表现的指标。寻找函数最小值的最常用方法是“梯度下降”。把损失函数想象成起伏的山脉,梯度下降就像从山顶滑下,目的是到达山脉的最低点。
智能算法
2018/07/30
2.3K0
到底该如何选择损失函数?
tf.session.run()单函数运行和多函数运行区别
这里我们分别使用两种不同的代码,读取 csv 文件中的数据。我们观察这两种方式读取的数据有什么不同。源程序文件下载[1]test_tf_train_batch.csv[2]
演化计算与人工智能
2020/08/14
1K0
云函数的Rust运行时
发现云函数不支持Rust,我就自己借鉴lambda_runtime写了一个腾讯云的运行时。
YoumuChan
2021/02/02
1.2K0
在mac电脑的terminal里该如何运行c语言
若要在 Mac 的终端中编译并运行 C 源代码,你首先需要安装 Command Line Tools,里面包含有 GCC 编译器。安装方法为:
新人小试
2020/03/27
5.8K0
在mac电脑的terminal里该如何运行c语言
运行linux遇到菱形乱码该如何处理
执行命令:vim /var/lib/locales/supported.d/local
会长君
2023/04/25
6360
关于python函数,你该了解这些
形参全名形式参数,又称虚拟变量。实参和形参可以重名。形参只是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传入的参数。必须注意实参的个数,类型应与形参一一对应。
天寒雨落
2022/11/22
2890
关于python函数,你该了解这些
运行linux遇到菱形乱码该如何处理
执行命令:vim /var/lib/locales/supported.d/local
会长君
2023/04/25
6720
利用装饰器计算函数运行的时间
import time from functools import wraps def time_this_function(func): #作为装饰器使用,返回函数执行需要花费的时间 @wraps(func) def wrapper(*args,**kwargs): start=time.time() result=func(*args,**kwargs) end=time.time() print("函数:",fun
西西嘛呦
2020/08/26
1K0
加速!缓存Python函数的运行结果:Memoization
使用称为“memoization”的强大而方便的缓存技术来加速您的Python程序。 在这篇文章中,我将向您介绍一种方便的方法来加速你的Python代码,该技术称为memoization (有时拼写为memoisation): Memoization是用作软件优化技术的特定类型的缓存。 缓存存储操作的结果以供以后使用。例如,如果将来再次访问,您的Web浏览器很可能会使用缓存来加载此教程网页。 所以,当我谈论memoization和Python时,我正在讨论的是如何根据输入记忆或缓存函数的输出。Memoiza
企鹅号小编
2018/01/19
2.1K0
加速!缓存Python函数的运行结果:Memoization
ABAP 获取运行时的函数名
在函数运行的时候,当前函数的函数名,是没有类似SY-REPID等系统变量来获取的。如果要在函数内获取当前运行的函数名,可以使用读堆栈的方式。
matinal
2020/11/04
8240
ABAP 获取运行时的函数名
原始递归函数及模拟运行的优化
  看到网上一个题目,证明x开y次方是原始递归函数(primitive recursive function)。这个问题并不难,只要把x开y次方实现出来即可。于是,正好把《递归论》相关内容补一补。
窗户
2022/10/06
1.6K0
原始递归函数及模拟运行的优化
Kubernetes 的网络、存储和运行时该如何处理?
技术的发展,总是解决了现有的问题,进而引入新的问题,继而继续解决,如此周而复始,Docker 公司在2013年成立,将容器的概念迅速扩散。正如当年集装箱点燃了全球的货运革命一样,当时的船运公司使用这种大型的金属集装箱替代了过去纷杂的货运装置,以适应在卡车、船舶、铁路三者之间匹配。装什么无所谓,重要的是装载本身有了标准。和现实世界的集装箱运输一样,Linux 容器创建了对于应用最为基本的封装,使之可以运行在任何的基础设施平台上。一时之间,容器风靡世界。到今天为止,几乎所有的企业都有意愿将他们的应用跑在容器之上,即使是他们自己的内部的服务器,也同样在考虑。尽管容器仅仅是管理现代的应用程序的一种更好的方式,因为它们通常被分割成无数的组件(微服务),但仍然需要能够在服务器之间进行容易的移植和访问。
CNCF
2019/12/04
1.3K0
Kubernetes 的网络、存储和运行时该如何处理?
C语言的main函数到底该怎么写
main函数是程序执行自定义的第一个函数。从开始学习C语言到现在,我们似乎看到了很多个版本的main函数,那么哪一种才是正确的呢?我们先来看看目前有哪些版本。
编程珠玑
2019/09/03
1.4K0
C语言的main函数到底该怎么写
【问题】为什么 System.Timers.Timer 更改间隔时间后的第一次触发时间是设定时间的三倍?
【问题】为什么 System.Timers.Timer 更改间隔时间后的第一次触发时间是设定时间的三倍?
独立观察员
2022/12/06
7970
【问题】为什么 System.Timers.Timer 更改间隔时间后的第一次触发时间是设定时间的三倍?
Python 运行JavaScript 调用JavaScript函数
我们在进行python爬虫爬取一些站点时,有时会用到js逆向的操作,这时候就需要python运行javascript来进行操作
Chuanrui 初见之旅
2022/11/14
1.1K0
点击加载更多

相似问题

Timer.Interval问题

41

timer.interval增加调用间隔

114

方法,该方法仅在第一次安装后运行。

12

第二次单击该按钮将运行jquery函数(不是第一次)

115

云函数http函数第一次运行失败

121
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文