如何杀死 MFC 线程

Posted

技术标签:

【中文标题】如何杀死 MFC 线程【英文标题】:How to kill a MFC Thread 【发布时间】:2014-06-17 03:31:43 【问题描述】:

我创建了一个线程:

static UINT MyThreadProc( void* pParam );
UINT CFTPDlg::MyThreadProc( void* pParam )  
  
    CFTPDlg * pObject = (CFTPDlg *)pParam;
    pObject->buttonConnect();
    return 0;  

然后我使用 AfxBeginThread ( MyThreadProc, this) 启动线程;

如何删除我的话题?

非常感谢

【问题讨论】:

线程proc返回时,线程会自行删除。 【参考方案1】:

不确定 buttonConnect 在这里做什么。但是当buttonConnect返回时线程会自动退出。

您应该使用 pObject->DoModal() 来实际查看对话框并使用它。

重新考虑是否真的需要在另一个线程中创建 UI。如果您想在主 UI 中显示一个对话框,以便用户可以访问您的主 UI 和对话框,那么您可以选择创建无模式对话框,而不是在另一个线程中创建对话框。

如果 buttonConnect 函数只是连接到另一个服务器,那么您可以在主线程中创建 UI 并生成一个线程来连接到服务器。

【讨论】:

以上是关于如何杀死 MFC 线程的主要内容,如果未能解决你的问题,请参考以下文章

mfc如何使用多线程搜索文件夹?

Boost,C ++如何杀死另一个线程打开的线程?

如何杀死java上的线程? [复制]

如何在 C# 中立即杀死一个线程?

QT - >如果线程正在消耗所有资源并且不允许插槽执行,如何杀死线程

如何正确的关闭 MFC 线程