在正常情况下,应该不可能在TimerCallback函数上访问在主线程上分配的属性值,对吗?
我有一个使用计时器的类,并且该类具有用于TimerCallback的方法,那么,我访问此方法的属性就像没有多线程一样(我看到在主线程上分配的值)
如有必要,我将粘贴一些代码,但我想首先了解我是否对计时器有重大困惑。
谢谢
最佳答案
应该不能在TimerCallback函数上访问在主线程上分配的属性值,对吗?
错误!仅在使用依赖于主线程的UI时,例如在使用Winforms UI和WPF甚至某些COM组件时,您仅应从其创建的线程访问其成员,无论它在主线程在哪里或不。
但是,对于您构建的自定义类,哪个线程访问该成员并不重要,也就是说,任何线程都可以访问该类及其成员,而不管它在创建该类的线程上的哪个位置。
关于c# - 关于System.Timers.Timer的困惑,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6917187/