首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >计时器会创建新线程吗?

计时器会创建新线程吗?
EN

Stack Overflow用户
提问于 2011-03-05 16:06:01
回答 2查看 9K关注 0票数 11
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
        timer.Interval = 5000;
        timer.Tick += new EventHandler(timer_Tick);
        timer.Start();

"timer_Tick“方法是在新的线程中启动,还是仍然在创建它的线程中?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-05 16:08:12

不,计时器在创建它的线程中运行。

我假设您谈论的是System.Windows.Forms.Timer,它是使用线程消息循环实现的。WinForms定时器的底层是Win32 API SetTimer(),它通过将WM_TIMER消息发布到SetTimer()线程的消息队列来操作。

这样做的后果之一是,如果事件处理程序花费的时间比计时器间隔更长,则计时器将不会在所需的时间间隔内触发。如果这是一个问题,那么你需要把你的计时器放在另一个线程中。

作为一个思维实验,想象一下,如果您的计时器事件在不同的线程中执行,会发生什么。现在你有一个同步问题要处理了。您的计时器事件可能希望访问另一个线程中的对象。但这样做将导致竞争条件。

票数 10
EN

Stack Overflow用户

发布于 2011-03-05 16:24:03

计时器并不是真正的“运行”。也就是说,当您启动计时器时,操作系统会创建一些数据结构,告诉它定期发出"tick“--在您指定的任何时间段。但它不像是定时器坐在那里旋转,在等待适当的时间时消耗CPU资源。所有.NET计时器类型和Windows API计时器类型都是这样工作的。

不同之处在于,当需要打勾的时候,会发生什么。正如@David Hefferman指出的那样,使用System.Windows.Forms.Timer时,在创建计时器的同一线程上调用Elapsed事件处理程序。System.Threading.Timer在线程池线程上调用它的回调。在幕后,在池线程上调用System.Timers.Timer,但您可以使用SynchronizingObject属性在UI线程或任何其他线程上引发Elapsed事件。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5204958

复制
相关文章
量子计算(十六):其他类型体系的量子计算体系
离子研量子计算在影响范围方面仅次于超导量子计算。早在2003年,基于离子阴就可以演示两比特量子算法。离子附编码量子比特主要是利用真空腔中的电场因禁少数离子,并通过激光冷却这些因禁的离子。以因禁Yb+为例,下图(a)是离子阱装置图,20个Yb+连成一排,每一个离子在超精细相互作用下产生的两个能级作为量子比特的两个能级,标记为|↑〉和|↓〉。下图(b)表示通过合适的激光可以将离子调节到基态,然后下图(c)表示可以通过观察荧光来探测比特是否处于|↑〉。离子阱的读出和初始化效率可以接近100%,这是它超过前两种比特形式的优势。单比特的操控可以通过加入满足比特两个能级差的频率的激光实现,两比特操控可以通过调节离子之间的库伦相互作用实现
Lansonli
2022/12/31
1.1K0
量子计算(十六):其他类型体系的量子计算体系
[数据结构与算法] 链表的其他类型
单链表是最简单的链表,单链表的一种变形就是循环单链表,其中最后一个结点的next域不用None,而是指向表的第一个结点,这样就形成了一种循环结构,所以叫循环单链表。 双链表:单链表只有1个方向的链接,只能做一个方向的扫描和逐步操作。单链表的next指针域指向下一个结点,而双链表结点除了具有next指针外,还有一个previous指针,指向上一个结点。单链表中查找元素只能从头结点开始,根据他的next指针域找到下一个结点,而双链表最大的区别在于不仅能找到下一个结点,还能找到上一个结点。 循环双链表:然后看下什
用户1622570
2018/04/12
8920
【转】string类型和其他类型的值的互转
由于在开发过程中遇到类型转换问题,比如在web中某个参数是以string存在的,这个时候需要转换成其他类型,这里官方的strconv包里有这几种转换方法。
yiduwangkai
2019/09/17
1.4K0
移除除管理员之外的其他用户的WordPress 更新升级提示
对于多用户博客,一般只有一个管理员。维护后台等之类的工作一般都是管理员来做的,对于WordPress的更新升级,为了避免某些情况,可以通过以下代码实现除管理员之外的其他用户的Wordpress 更新升级提示都被禁止。 下面这段代码确保除了管理员之外的用户不会收到Wordpress升级提示: // REMOVE THE WORDPRESS UPDATE NOTIFICATION FOR ALL USERS EXCEPT SYSADMIN global $user_login; get_currentus
Jeff
2018/01/19
5320
MySQL其他类型常用函数
INET_ATON(IP)和INET_NTOA(num)函数主要的用途是将字符串的IP地址转换为数字表示的网络字节序,这样可以方便地进行IP或者网段的比较。 比如下面的表,想要知道192.168.1.1和192.168.1.10之间一共有多少IP地址。
秋白
2019/02/21
7490
MySQL其他类型常用函数
go的数据类型-其他数据类型-pointer(二)
在Go语言中,我们也可以使用指针数组来存储多个指针。指针数组是一个数组,其每个元素都是指针类型。我们可以使用数组下标和*运算符来访问指针数组中的元素,如下所示:
堕落飞鸟
2023/04/20
3290
go的数据类型-其他数据类型-function(二)
函数类型可以像其他类型一样被传递、嵌套和返回。例如,下面的示例演示了如何将一个函数类型作为参数传递给另一个函数:
堕落飞鸟
2023/04/20
3150
go的数据类型-其他数据类型-interface(二)
在Go语言中,接口可以被用来定义变量和函数参数类型。例如,下面的示例演示了如何定义一个接口类型的变量和函数参数:
堕落飞鸟
2023/04/20
2840
go的数据类型-其他数据类型-pointer(四)
指针类型变量不能直接与非指针类型变量进行比较,需要先将指针类型转换为对应的非指针类型。
堕落飞鸟
2023/04/20
3200
go的数据类型-其他数据类型-function(一)
函数是Go语言中一种非常重要的数据类型,它可以被用来定义和调用函数,从而实现程序的模块化和代码复用。
堕落飞鸟
2023/04/20
4780
go的数据类型-其他数据类型-interface(一)
在Go语言中,接口(Interface)是一种特殊的类型,它定义了一组方法签名,但没有实现这些方法的代码。接口可以被任何实现了这些方法的类型实现,从而实现多态性和代码复用。
堕落飞鸟
2023/04/20
3550
go的数据类型-其他数据类型-pointer(三)
在Go语言中,我们可以使用指向结构体的指针来操作结构体的成员。一个指向结构体的指针指向结构体的第一个成员的地址。
堕落飞鸟
2023/04/20
2810
go的数据类型-其他数据类型-interface(三)
在Go语言中,接口可以嵌套在其他接口中,以形成更复杂的接口。例如,下面的示例定义了一个名为Animal的接口,它包含一个名为Move的方法。然后,我们定义了一个名为Bird的接口,它嵌套了Animal接口,并包含一个名为Fly的方法。
堕落飞鸟
2023/04/20
3210
go的数据类型-其他数据类型-channel(二)
以下是一个使用Channel的示例程序,该程序创建了两个Goroutine,并使用Channel在它们之间进行通信和同步。
堕落飞鸟
2023/04/20
8131
go的数据类型-其他数据类型-pointer(一)
在Go语言中,指针是一种非常重要的数据类型。它们允许我们直接访问内存中的数据,并对其进行修改。本文将介绍Go语言中指针的概念、声明、使用、空指针、指针数组、指向结构体的指针等相关内容,并给出示例。
堕落飞鸟
2023/04/19
6321
go的数据类型-其他数据类型-channel(一)
在Go语言中,Channel是一种特殊的数据类型,用于在Goroutine之间进行通信和同步。通过Channel,一个Goroutine可以向另一个Goroutine发送数据或接收数据。这使得Goroutine之间的通信变得非常简单和有效。
堕落飞鸟
2023/04/20
6451
python之函数的其他类型参数
  实际开发过程中,经常会遇到很多完全相同或者非常相似的操作,这时,可以将实现类似操作的代码封装为函数,然后在需要的地方调用该函数。这样不仅可以实现代码的复用,还可以使代码更有条理性,增加代码的可靠性。下面我们来介绍一下python的函数位置参数、关键字参数,不定长参数相关内容。
jiankang666
2022/12/05
1.1K0
python之函数的其他类型参数
通过JS检测当前设备类型
背景: 基友做了个APP,发了一排二维码,然后互相吐槽了一下,发现移动应用出现也一年了,虽然很简单,但是好像都懒得通过写个JS来判断然后发一个二维码让大家下载应用。虽然内容不多,而且没啥难度,但是动嘴不如动手,总要有人做,就专门整理一下。 简介: 提供了几个JS接口,通过这几个JS接口,可以轻松获取到当前打开页面的浏览器类型,然后根据类型跳转到对应的链接。同时也提供了两个demo方便大家参考。 对应链接:http://microdemo.bihe0832.com/MultiQrcode/index.htm
子勰
2018/05/22
2.3K0
String与其他类型之间转换
写这篇博客的初衷是:今天百度查了下char转String的问题,一位老兄的博客里面写着调用char类型的toString方法。
johnhuster的分享
2022/03/28
3280
点击加载更多

相似问题

python获取我的字典获取元组或列表

10

我有一个值列表,我想迭代地将键-值对附加到python字典中

223

我想从2个python字典中构造一个列表,这些字典有相同的键,但键值不同。

50

为字典列表B中不存在的字典列表A中的每个字典创建字典列表

112

我想让字典a使用字典b。

14
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

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