[技巧] DLL 中使用多线程的一点提示

在 Delphi 或 C++ Builder 中,如果你使用 TThread 的子类实现多线程,如果你在 DLL 卸载前,没有单独提前终止线程,可能会造成 DLL 锁死无法退出。查看线程的栈和主线程的栈,你会发现两者相互等待,处于死锁状态。所以,正确的做法是在主程序退出前,如主窗体的 OnClose 里,调用 DLL 中的某些方法或者通过某些其它手段(自行脑补),提前释放 DLL 中的线程,程序就可以正确退出了。

滚动至顶部