多线程操作一个listview控件,出现次序混乱,大家帮忙看看~~

king8192 2006-11-23 11:51:02
在vb.net里,我把多线程的各自执行信息写入一个listview控件,例如:
我想实现的正常顺序
序号 是否完成 完成时间 标识号(唯一)
1 Y 2006-11-1 111
2 Y 2006-11-1 222
3 N 2006-11-1 333
4 Y 2006-11-1 444
5 N 2006-11-1 555

可是 结果不尽任意 各个列错位 数据出现混乱,我想是因为多线程执行时间段的不同造成的 结果大概如下:

序号 是否完成 完成时间 标识号(唯一)
1 Y 2006-11-1 111
2 2006-11-1 Y
4
3 Y 2006-11-1
5 N 2006-11-1 555

行的序号顺序混乱,有的行只有序号,其他列没有数据,有的行本列数据跑到其他列下面去显示了。
大家帮帮忙看看,怎么解决多线程处理同一控件的问题啊~~小弟在此先谢过了!!

...全文
240 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
king8192 2006-11-23
  • 打赏
  • 举报
回复
顺便说下 我用的是VS2005
king8192 2006-11-23
  • 打赏
  • 举报
回复
我看不太明白 :( 还能具体的给我讲讲么?
dongshanyu 2006-11-23
  • 打赏
  • 举报
回复
是多线程使用中UI显示不稳定的问题,我也遇到过。

参见http://community.csdn.net/Expert/TopicView3.asp?id=4943838
dongshanyu 2006-11-23
  • 打赏
  • 举报
回复
没错
king8192 2006-11-23
  • 打赏
  • 举报
回复
to:dongshanyu(sean)
ToAddLvwItemOfLogNew就是我的添加listview的方法吧,我需要声明若干全局变量,将线程中我要显示的数据放到变量中然后在ToAddLvwItemOfLogNew中使用,我理解的对么?我的线程 在另外的一个类中创建,是不是还要创建个listview的实例传到ToAddLvwItemOfLogNew方法所在的类中呢?我不知道我有没有说明白,我理解的是否正确~先谢了 dongshanyu(sean)
dongshanyu 2006-11-23
  • 打赏
  • 举报
回复
下面这段代码在类中使用
Private Sub toAddMsg()
Dim mi As MethodInvoker
mi = New MethodInvoker(AddressOf ToAddLvwItemOfLogNew)
mLvwLog.Invoke(mi)
End Sub

至于你要显示的信息,在类中,你可以用变量来存放.


16,722

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧