傻白甜 发表于 2023-9-5 16:13:23

火山视窗多线程写的循环运行一个多小时就会自动崩溃

本帖最后由 傻白甜 于 2023-9-6 17:54 编辑

话不多说直接上代码吧。有点简陋麻烦大神凑合看帮分析一下。


如果(来源对象=按钮一)
循环(超级列表框1.取标项数(),i)
   线程启动(取静态方法地址(主程序),i)

下面是主程序

如果(读配置项(“时间”,"现在","配置.ini")!=取小时(取现行时间()))
    延时(5000)
    超级列表框1.置标题(1,2,“时间不对”)
    写配置项(到文本(取小时(取现行时间())),“时间”,"现在","配置.ini")
否则
    超级列表框1.置标题(1,2,“时间正确”)



主程序(i)


不知道这样写是哪里出来问题,按照这个流程下来运行没问题但是一个小时左右就直接崩溃了。请大神指点一二,项让这个主程序这样循环怎么才会不崩溃

调试输出的时候有退出码,0x000000FD。我怀疑是递归太深造成的,这样的话应该如何解决呢?

459943578 发表于 2023-9-5 16:45:43

超级列表框前后加个锁搞定

b0y 发表于 2023-9-5 17:01:40

多线程操作组件 最好发消息然后在主线程里操作

傻白甜 发表于 2023-9-5 18:33:31

b0y 发表于 2023-9-5 17:01
多线程操作组件 最好发消息然后在主线程里操作

法消息是什么意思 刚接触不太懂

傻白甜 发表于 2023-9-5 18:35:13

459943578 发表于 2023-9-5 16:45
超级列表框前后加个锁搞定

我先测试试试

hmyroot 发表于 2023-9-5 20:23:58

b0y 发表于 2023-9-5 17:01
多线程操作组件 最好发消息然后在主线程里操作

列表框好像不能用SendMessage()来插入表数据

desk 发表于 2023-9-5 20:54:08

线程不能操作组件 操作组件 崩溃 几率很高的

desk 发表于 2023-9-5 20:55:00

你的用,取程序().窗口对象.组件名称

tmf19901124 发表于 2023-9-5 21:17:53

线程里面操作窗口,不崩溃才不正常

Xelloss0618 发表于 2023-9-5 21:42:31

hmyroot 发表于 2023-9-5 20:23
列表框好像不能用SendMessage()来插入表数据

用 高级主线程处理器
页: [1] 2
查看完整版本: 火山视窗多线程写的循环运行一个多小时就会自动崩溃