Windows API安全终止线程

| 我在Windows XP上有Delphi应用程序。此应用程序可使用100个线程。在某些情况下,我必须使用完全丢弃的线程堆栈来终止线程。 我从WinAPI寻找功能,例如终止线程,但并不安全,并且: Windows Server 2003和Windows XP / 2000:目标线程的初始堆栈未释放,导致资源泄漏。     
已邀请:
        没有这样的功能。可能没有这样的功能。 Windows可能无法知道该线程将整理哪些资源,并且它也不知道该如何做。那就是您的应用程序的责任。 在我看来,您的做法是错误的。您应该在不使用强制的情况下以合作方式终止线程。其他任何事情都必定会导致泄漏和其他更严重的问题。     
        如果您的应用程序线程都是用Delphi代码编写的,则可以考虑使用OmniThreadLibrary并使用其提供的服务,而不是原始的Win32 API或TThread的内置功能,这在Delphi的最新版本中相当不错。 但是,要发信号通知线程并关闭它们,尤其是在并非所有线程都由Delphi THread对象创建和管理的情况下,您将必须进行大量设计,并且您可能必须将一些Win32原语组合在一起建立一个体面的解决方案。例如,我将使用Win32事件并使用Win32事件句柄发出用C / C ++编写的信号线程。 对于纯100%delphi代码库,我将只使用经过良好测试的任何东西,并使用TThread API或OmniThreadLibrary,而不是使用原始的Win32 API。     

要回复问题请先登录注册