gpt4 book ai didi

multithreading - 当我在线程上调用 Free 时,为什么我的程序会挂起?

转载 作者:行者123 更新时间:2023-12-03 15:48:52 25 4
gpt4 key购买 nike

我放弃使用 FreeOnTerminate := true 转而将其显式设置为 false,但现在每次我尝试显式释放线程时,代码都会锁定。我确定锁定发生在 Free 语句处。

对于线程过程的最后一步,我将向我在主对象中创建的窗口句柄发送一条消息,以发出“完成”信号。我在那里举办一个事件,然后免费进行。为什么会出现这种情况?

最佳答案

我认为这是一个典型的多线程死锁。

当你的线程通过sendmessage发送完成信号时,线程会等待sendmessage返回,然后才会执行其他操作(例如free过程)。同时,您的主线程正在等待线程释放,然后再完成事件并处理线程的发送消息。

您是否尝试过使用 postmessage 来代替它立即返回并且不等待结果?

关于multithreading - 当我在线程上调用 Free 时,为什么我的程序会挂起?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7063592/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com