gpt4 book ai didi

c++ - Win32、MFC : Ending threads

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:06:45 27 4
gpt4 key购买 nike

我有一个 DLL,它有一个名为 CWork 的基于 CWinThread 的类。我使用 AfxBeginThread 创建它。

在这个类中,我定义了一个无限循环并执行特定任务的过程。这个过程将自己作为一个线程使用。我也使用 AfxBeginThread 创建它。

现在,当我的 DLL 退出时,我想结束线程。这是因为我在退出时崩溃了,我相信这就是原因。

另外还有

伪代码示例:

Cmain 类

Cmain::Cmain(){
pMyThread = AfxBeginThread(CWork - a CWinThread based Class);
}

 UINT HandleNextVTSConnectionCommandProc(LPVOID pParam);

class CWork

CWork:CWork(){
AfxBeginThread(HandleNextVTSConnectionCommandProc, this);
}


UINT HandleNextVTSConnectionCommandProc(LPVOID pParam){

while(true){

dosomething();
sleep(2000);

}

}

我的问题是,结束这 2 个线程的正确方法是什么?

谢谢!

最佳答案

一般来说,结束线程的正确方法是要求它完成,然后等待它完成。因此,在 Windows 上,您可能会发出一个事件信号,要求线程完成,然后等待线程 HANDLE。强行终止一个线程几乎总是一个错误的想法,它会回来困扰你。

关于c++ - Win32、MFC : Ending threads,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30459157/

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