OnTimer函数能与此外的线程函数共享变量吗

OnTimer函数能与另外的线程函数共享变量吗?
OnTimer函数能与另外的线程函数通过Mutex实现对共享变量的访问,而不会造死锁?
------最佳解决方案--------------------
引用:
不建议在ONTIMER中锁,因为定时器是利用中断来实现的,容易挂起界面...


OnTimer也是一个消息处理函数,主线程检测到消息队列中有WM_TIMER消息后调用相应的消息处理函数OnTimer,这个还是主线程
------其他解决方案--------------------
可以啊,你设置临界区
------其他解决方案--------------------
尽量用轻量级的锁,如临界区
另外,不要锁太多、太耗时的代码
------其他解决方案--------------------
引用:
是不是OnTimer是主线程(或者进程),一旦工作线程获取到互斥锁,没有释放时,定时器时间到了,进入OnTimer去获取mutex,始终无法得到,但工作线程又不会再被调用(锁无妨释放)


OnTimer会等你在工作线程里把锁释放了
------其他解决方案--------------------
onTimer应该算是主线程的
------其他解决方案--------------------
如果只是读,而且是显示给ui的变量就不要加锁了,没有必要.
------其他解决方案--------------------
不建议在ONTIMER中锁,因为定时器是利用中断来实现的,容易挂起界面...
------其他解决方案--------------------
该回复于2011-01-14 10:24:37被版主删除
------其他解决方案--------------------
是不是OnTimer是主线程(或者进程),一旦工作线程获取到互斥锁,没有释放时,定时器时间到了,进入OnTimer去获取mutex,始终无法得到,但工作线程又不会再被调用(锁无妨释放)
------其他解决方案--------------------
有没有这样一种互斥方法:不管是否获得锁都立即返回,但是成功与否返回值不同,代码可根据返回值做判断,是否可访问共享变量,不产生睡眠
------其他解决方案--------------------
tryEntercritical可以立即返回~不会阻塞在那里~