请问MFC中MDI(Multiple Document) 访问共享数据的有关问题
请教MFC中MDI(Multiple Document) 访问共享数据的问题
描述:
一个MDI MFC程序, 三个文档视图,ViewA/DocA,ViewB/DocB,ViewC/DocC,
有一个全局变量Queue,
三个view都有OnTimer函数, 都会对全局Queue进行操作,
(1)请问这样会不会有冲突?
(2)MDI MFC程序都是单线程?
------解决方案--------------------
对变量的操作没有问题,不会因为冲突而失败,关键是Queue对你的应用有没有冲突的影响
------解决方案--------------------
(1)不会
(2)虽然可以打开多个view,但是还是单线程的
------解决方案--------------------
主窗口是单线程的,也就是一个OnTimer 执行时会阻塞掉另一个;
这就会是OnTimer 执行时间不准,而且OnTimer 执行时间过长会使界面停顿(其他消息暂停处理,鼠标有停顿感),所以尽量用单独线程代替OnTimer ;
用单独线程时,就要用同步变量来保证全局Queue 使用不冲突。
描述:
一个MDI MFC程序, 三个文档视图,ViewA/DocA,ViewB/DocB,ViewC/DocC,
有一个全局变量Queue,
三个view都有OnTimer函数, 都会对全局Queue进行操作,
(1)请问这样会不会有冲突?
(2)MDI MFC程序都是单线程?
------解决方案--------------------
对变量的操作没有问题,不会因为冲突而失败,关键是Queue对你的应用有没有冲突的影响
------解决方案--------------------
(1)不会
(2)虽然可以打开多个view,但是还是单线程的
------解决方案--------------------
主窗口是单线程的,也就是一个OnTimer 执行时会阻塞掉另一个;
这就会是OnTimer 执行时间不准,而且OnTimer 执行时间过长会使界面停顿(其他消息暂停处理,鼠标有停顿感),所以尽量用单独线程代替OnTimer ;
用单独线程时,就要用同步变量来保证全局Queue 使用不冲突。