Timer控件是异步线程类型的么? 我在程序里放了2个timer控件,走的都是主线程,所以一个TIMEr里造成死循环 会造成整个程序无响应,怎么把Timer事件放到另一个线程中去 或者怎么实现2个异步线程 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不用timer, 用thread可以嗎? 建议你看看“三个定时器的史话”,就明白Timer了;可以自己写线程来定时触发,但不能直接更操作界面,否则会死; 你都说了Timer控件了,还哪来的异步?线程?有几个概念需要给你纠正一下1.什么是控件?控件就是一个更小的窗口,不是顶层窗口,放在某个容器中。2.控件如何工作?控件既然是一个更小的窗口自然是消息驱动的,依赖宿主的消息循环,所以,Timer控件实际上是中断发送消息实现的,而处理这些消息就和处理按钮按下的键盘、鼠标消息一样,是同步的,不过是有个中断定时的发送给你消息仅此而已,和你自己用手间隔的触发效果是一样的。3.异步,这个不一定就真是异步,真的异步就是多线程,假的异步就是延迟执行,例如常说的异步委托,Control.BeginInvoke,注意,我写的是Control.BeginInvoke,不是Delegate.BeginInvoke。控件的BeginInvoke只是PostMessage实现的,延迟执行而已,委托的BeginInvoke是真的异步。线程还是线程池,这个没了解过。4.线程,一个运行中的方法就是线程,没什么误区,不解释,你看google和msdn吧。 谢谢大家,lianshaohua给我的提示,现在用线程做,不用TIMER控件,已经可以实现了 用了线程了,还用什么的timer。 邮件发送不成功原因 C/S怎么连接外网数据库 疯狂的DataGridView问题 数据库取值错误 Hashtable操作,我必须遍历,但在循环中Hashtable会改变,导致枚举值不能使用异常..急求大侠帮忙.. C# 求解答 给我一个使用dbgrid的例子吧 月饼节到了,祝所有在外工作的程序员们节日快乐, 一个被忽视的角落,AssemblyInfo.cs文件。 哪位知道怎样在C#使用JMAIL组件发送邮件?? 如何让Winform的TextBox失去焦点? C# socket编程为什么打开侦听的时候,程序容易卡死,且程序收不到数据
可以自己写线程来定时触发,但不能直接更操作界面,否则会死;
有几个概念需要给你纠正一下
1.什么是控件?控件就是一个更小的窗口,不是顶层窗口,放在某个容器中。
2.控件如何工作?控件既然是一个更小的窗口自然是消息驱动的,依赖宿主的消息循环,所以,Timer控件实际上是中断发送消息实现的,而处理这些消息就和处理按钮按下的键盘、鼠标消息一样,是同步的,不过是有个中断定时的发送给你消息仅此而已,和你自己用手间隔的触发效果是一样的。
3.异步,这个不一定就真是异步,真的异步就是多线程,假的异步就是延迟执行,例如常说的异步委托,Control.BeginInvoke,注意,我写的是Control.BeginInvoke,不是Delegate.BeginInvoke。控件的BeginInvoke只是PostMessage实现的,延迟执行而已,委托的BeginInvoke是真的异步。线程还是线程池,这个没了解过。
4.线程,一个运行中的方法就是线程,没什么误区,不解释,你看google和msdn吧。