求助!!!"启动有状态线程"崩溃
<火山程序 类型 = "通常" 版本 = 1 />包 火山.程序
类 启动类 <公开 基础类 = 动态库程序类>
{
变量 线程状态 <类型 = 线程状态类>
方法 启动方法 <公开 类型 = 整数>
{
启动有状态线程 (线程状态, 线程测试函数, 262144, )
返回 (1)
}
方法 线程测试函数 <静态>
参数 线程状态对象 <类型 = 线程状态类>
{
全局信息框 ("我是线程测试函数", , , )
}
}
在火山视窗DLL的启动方法里执行 "启动有状态线程" 直接崩溃,改用启动线程就没事。有没有大佬告知下原因
线程里面不要弹出信息框。也不要操作任何组件。 创世魂 发表于 2025-6-25 07:55
线程里面不要弹出信息框。也不要操作任何组件。
<火山程序 类型 = "通常" 版本 = 1 />
包 火山.程序
类 启动类 <公开 基础类 = 动态库程序类>
{
变量 线程状态 <类型 = 线程状态类>
方法 启动方法 <公开 类型 = 整数>
{
启动有状态线程 (线程状态, 线程测试函数, , )
返回 (1)
}
方法 线程测试函数 <静态>
参数 线程状态对象 <类型 = 线程状态类>
{
// 全局信息框 ("我是线程测试函数", , , )
}
}
线程函数里不写任何代码也会崩溃。
只有在DLL的启动方法里调用"启动有状态线程"才会这样。
如果是EXE就不会,但是DLL启动方法里改成使用"启动线程"又正常了
测试了一下,并非不能在DLL里使用,而是不能在DLL的启动方法里使用。
可能是启动有状态线程用了些不能在dll入口函数里使用的API吧。
换其他方法吧,这个有状态线程也不好用。建议PIV或仰望模块的“启动静态线程”,传参也更简单。 DllMain中有诸多限制, "启动有状态线程"创建线程之后,内部调用了WaitForSingleObject, 导致死锁.
793359277 发表于 2025-6-25 22:04
DllMain中有诸多限制, "启动有状态线程"创建线程之后,内部调用了WaitForSingleObject, 导致死锁.
...
原来如此,谢谢
页:
[1]