VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1122|回复: 4

BCB多线程问题

[复制链接]

1

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-1-25 18:40:01 | 显示全部楼层 |阅读模式
主窗体OnShow开了一个TThread子线程,子线程里
            while(!StopRunning)
            {
                ::Sleep(50);
                Application->ProcessMessages();
            }
如果不加Application->ProcessMessages();这句,程序会死掉,为什么?
回复

使用道具 举报

1

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-2-15 07:15:01 | 显示全部楼层
while的前面我new了一个窗体,不过没显示。如果不new那个窗体,则不加Application->ProcessMessages();不会死。
什么原因高手解释下下,谢谢了哦
回复

使用道具 举报

0

主题

12

帖子

12.00

积分

新手上路

Rank: 1

积分
12.00
发表于 2020-2-16 14:00:01 | 显示全部楼层
Application->ProcessMessages();
是让你的代码能够处理消息队列中的消息。
回复

使用道具 举报

1

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-2-17 12:45:01 | 显示全部楼层
但是主线程应该不会死啊,我在子线程里while循环的。我试了如果不在那个子线程创建窗体,那么不加Application->ProcessMessages()主线程不会死
回复

使用道具 举报

0

主题

14

帖子

10.00

积分

新手上路

Rank: 1

积分
10.00
发表于 2020-3-6 10:45:01 | 显示全部楼层
Application->ProcessMessages() 是让主进程接受新消息,但多线程就是为了让各线程各自可以单独工作,我认为是年的多线程设计有问题。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表