0

我有这样的代码

X *m = new X(); // X - class derived from CWinThread;

m->CreateThread(CRREATE_THREAD);
m->b_AutoDelete = false;
x->ResumeThread;

在函数运行中,我有一些代码,在循环中运行。

当我尝试执行 deletem时,经常会遇到异常。

我之前需要做某事delete,可能是m->Suspend还是别的?

代码在 Windows 7 上运行

4

1 回答 1

2

很难说,但它可能会崩溃,因为您在删除对象时会从线脚下拉出地毯。

结束线程的好方法是首先告诉它停止。这通常通过线程函数检查的布尔标志来完成。它将让线程函数以一种很好的方式处理清理。完成后,可以使用另一个布尔标志检查,然后您可以自由删除该对象。

于 2013-08-02T12:36:11.790 回答