我个人理解认为timer组件启动时会隐式开启一个线程
那么为什么timer组件更新界面的时候不会出现跨线程访问的问题?
还望各位指教,timer组件到底是如何运行的?是否在底层已经处理了回调了?
那么为什么timer组件更新界面的时候不会出现跨线程访问的问题?
还望各位指教,timer组件到底是如何运行的?是否在底层已经处理了回调了?
解决方案 »
- 太菜了,大家帮看看,啥算的
- winform问题
- 求一个算法。请高手帮忙解答,比较急,在线等待。
- 请教大家一个简单的问题
- [WinForm TabControl]有没有可能在Tab上添加一个PictureBox控件
- 请教C#的Socke高手?? C#做的Socket客户端如何用已连接的Socke接收服务器定时传回的信息????不能阻塞客户端。
- 如何判断word已打开
- wpf里怎么没有winform里的datagridview控件.
- 请问各位高手,在C#.NET 中如何实现数据的直方图、面积图以及趋势图显示?
- 自定义控件:如何判断当前处于设计时,还是运行时?
- 请教IPv6域名解析的问题
- 请教如何显示偶尔连接数据库同步状态
错。它只是注册了一个事件处理程序,和Command_Click一样。底层做死循环,如果是 WM_COMMAND,就调用 Command_Click,如果是 WM_TIMER,就调用定时器。
而消息是Windows维护的。
很明显,如果在Command里面编写一个耗费时间的过程,Timer就不会触发。
Console. Console.WriteLine(System.Threading.Thread.CurrentThread.ManagedThreadId.ToString());
这要看是那个明明空间Timer吧!!!
在Form下的是在主线程的
其他两个是是基于线程池的Thread Pool
http://msdn.microsoft.com/zh-cn/library/tb9yt5e6.aspx