怎样才能快速杀死AfxBeginThread创建的线程?

时间:2022-08-06 23:53:51
我希望这个模块能很快的返回结果才考虑用多线程,但当返回前删除所创建的线程等待时间太长(在WaitForSingleObject,delete时),真是得不偿失!我一般是这样写的:

       1:CWinThread *pThread = AfxBeginThread(MyProc,Param);
       2:pThread->m_AutoDelete = FALSE;
       ......................
       ......................
      //删除线程时
       3:WaitForSingleObject(pThread->hHandle,1000);
       4:delete pThread;

在的2行,我看过的例程都把m_autoDelete 设为FALSE,照MSDN的意思,是不是改为TRUE时,线程函数return时,系统就会自动删除所创建的线程,就不用3,4行了?
也不知道这个是不是我要的快速杀死线程的答案

如果不是请哥哥姐姐们给各能快速杀死AfxBeginThread创建的线程的例子

4 个解决方案

#1


如果将m_bAutoDelete设置为false在线程结束的时候必须显式的释放资源
如果想在线程结束时自动析构CWinThread对象,把m_bAutoDelete设置为true即可!

希望对你有所帮助!

#2


快速杀死线程……要是你的线程忙的话肯定快不起来。线程应该经常检查退出标志。

#3


void ExitThread(
  DWORD dwExitCode
);
BOOL TerminateThread(
  HANDLE hThread,
  DWORD dwExitCode
);

#4


看了半天才理解老兄的意思.
用MFC创建的线程, 当线程函数结束时应用程序不需要显示删除指向线程的指针的. MFC已经对这个操作作了封装了. 在CWinThread的析构函数中执行了:CloseHandle(hObjects)的操作.

#1


如果将m_bAutoDelete设置为false在线程结束的时候必须显式的释放资源
如果想在线程结束时自动析构CWinThread对象,把m_bAutoDelete设置为true即可!

希望对你有所帮助!

#2


快速杀死线程……要是你的线程忙的话肯定快不起来。线程应该经常检查退出标志。

#3


void ExitThread(
  DWORD dwExitCode
);
BOOL TerminateThread(
  HANDLE hThread,
  DWORD dwExitCode
);

#4


看了半天才理解老兄的意思.
用MFC创建的线程, 当线程函数结束时应用程序不需要显示删除指向线程的指针的. MFC已经对这个操作作了封装了. 在CWinThread的析构函数中执行了:CloseHandle(hObjects)的操作.