VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 609|回复: 3
打印 上一主题 下一主题

ListCtrl.SetItemText多进程中不能立即显示,需要整个程序运行完毕才显示

[复制链接]
56_avatar_middle
最佳答案
0 
跳转到指定楼层
1#
在线会员 发表于 2018-11-15 14:20:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
hEvent = CreateEvent( NULL, FALSE, FALSE,  NULL );   //2 bManualReset:TRUE//3 初始化无信号

         SetEvent(hEvent);  //设置为有信号 ,开
         AfxBeginThread(ThreadProc_adbdevices1,this); //ThreadProc_adbdevices1 做了插入文字动作m_ListCtrl.SetItemText(0,2,"listctrl 插入文字");
         Sleep(500);

         SetEvent(hEvent);
         AfxBeginThread(ThreadProc_adbdevices2, this); //ThreadProc_adbdevices1 做了插入文字动作m_ListCtrl.SetItemText(0,1,"listctrl 插入文字");

         Sleep(5000);
         //AfxMessageBox("插入文字1");  //如果调用了模态对话框AfxMessageBox,那么前边两个多进程中的SetItemText就生效
         m_ListCtrl.SetItemText(2,2,"listctrl 插入文字");

         //SetEvent(hEvent);
         //AfxBeginThread(ThreadProc_adbdevices3, this);
         Sleep(500);
         
         SetEvent(hEvent);
         AfxBeginThread(ThreadProc_adbdevices4, this);

        CloseHandle(hEvent);

       //如果没有调用中间的模态对话框AfxMessageBox, 需要等所有多进程运行完毕后, SetItemText 所插入的文字才会一起显示出来.  




上一篇:读取字符串中字符异常
下一篇:关于移动构造的几个小问题
56_avatar_middle
最佳答案
0 
2#
ico_lz  楼主| 发表于 2018-11-15 15:07:35 | 只看该作者
做了进一步研究发现是listctrl问题,但是依然没找到原因.
以下所有代码完成后,listctrl中一下子就显示出来了,  我的目标是依次逐步显示....

m_ListCtrl.SetItemText(0,1,"0000");
sleep(1000);
m_ListCtrl.SetItemText(1,1,"1111");
sleep(1000);
m_ListCtrl.SetItemText(2,1,"2222");
sleep(1000);
m_ListCtrl.SetItemText(3,1,"3333");
51_avatar_middle
最佳答案
11 
3#
online_admins 发表于 2018-11-15 15:16:12 | 只看该作者
valle 发表于 2018-11-15 15:07
做了进一步研究发现是listctrl问题,但是依然没找到原因.
以下所有代码完成后,listctrl中一下子就显示出来 ...

不要用 sleep 去阻塞,这样的话主UI线程也会跟着一起阻塞,所以会导致界面不更新了,卡住了
楼主可以使用消息发送的方式来达到异步的目的,或者用定时器也可以
56_avatar_middle
最佳答案
0 
4#
ico_lz  楼主| 发表于 2018-11-15 16:01:36 | 只看该作者
syc 老大.多谢,已经解决了!
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2019-12-15 07:37

Powered by Discuz! X3.4

© 2009-2019 cctry.com

快速回复 返回顶部 返回列表
时时彩平台排名