首页
社区
课程
招聘
[求助]多线程与VECTOR交互与OnPaint交互
发表于: 2018-5-19 19:40 2886

[求助]多线程与VECTOR交互与OnPaint交互

2018-5-19 19:40
2886

红色的地方显示N个账户信息
蓝色粗(第二列)的地方显示好友
最后一个显示其它一些信息
3个控件都是自绘
通过OnPaint读取 vector 数组中的值进行刷新
那么我用一个线程在后台对一个vector进行更改 ,添加或者删除数据,更改完成后通知窗口进行刷新,
那么 问题来了 ...................
那么我在更改的途中如果OnPaint发生了自绘,读取数据,或者已经在刷新当中,而我重置了数据,这样的情况下就会导致崩溃
// ---------------------------------------------------------------------------- ---------------------------------------------------------------------------- //
然后我是这样么想的  崩溃和错误 基本都来自于 我后台更改或删除了数据 而此时OnPaint 读取内存失败或为空,造成了崩溃。
既然我就不删除数据_即便收到用户的删除消息_我也只是通过标记将其隐藏_就是不刷新出来。

// 工程流程规划
一个线程在后台将数据读取写入到全局唯一的VECTOR数组中
我自绘的3个控件(OnPaint)则在这个全局唯一的VECTOR数组读取数据_只读取_不写入

添加1:
我查资料都说要用线程锁_但是如果更改数据的时候_正好要刷新_岂不是没有了实时性!


我想请问大佬 这样的方法可行不.
如果您有其它的方法,请与我交流一下。谢谢大佬~
如果您有经验,请务必帮帮忙。协助协助
坐等各位大佬~在线等~急!






[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2018-5-19 19:45 被魂球先生编辑 ,原因:
收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 70
活跃值: (72)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
沙发
最后于 2018-5-19 19:59 被FadeTrack编辑 ,原因:
2018-5-19 19:55
0
雪    币: 207
活跃值: (39)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
FadeTrack COW,虽然吃内存,不过满足实时性,了解一下,什么读写锁都是祸根。
恩恩恩恩恩!我百度取看下~谢谢大佬~
2018-5-19 19:58
0
雪    币: 704
活跃值: (3360)
能力值: ( LV7,RANK:140 )
在线值:
发帖
回帖
粉丝
4
线程锁是正道。
“如果更改数据的时候_正好要刷新_岂不是没有了实时性”,那么请问你的逻辑中,更改数据的时候正好要刷新应该怎么处理才有实时性?
就我理解,正常逻辑是修改完了都需要立刻刷新,所以如果刷新的时候遇到在修改,等待修改完了再刷新,是合理的逻辑。
如果是修改的时候遇到正在刷新,那就等刷新完了解锁了再修改,改完发送一条重绘消息。等待刷新这个时间我觉得不会很久吧。。。
2018-5-20 17:55
0
游客
登录 | 注册 方可回帖
返回
//