我创建了一个线程,该线程可以被挂起。那么,如何杀死或终止一个挂起的线程呢?
我试图ABORT
线程,我得到一个运行时错误消息,说线程被挂起,它不能被中止。我已经寻找终止方法或类似的东西,它似乎不存在。
myThread := new Thread(@BigLoop);
myThread.Start;
myThread.Suspend;
myThread.Abort; <<<===exception is raised.
那么,如何杀死或终止一个挂起的线程呢? 在我恢复挂起的线程后,我能够中止线程;
myThread := new Thread(@BigLoop);
myThread.Start;
myThread.Suspend;
if MyThread.ThreadState = ThreadState.Suspended then
myThread.Resume;
myThread.Abort;
注意,不建议使用abort。更好的解决方案是使用等待句柄(autoresetevent/manualresetevent)来通知线程它应该停止运行。请记住,"Abort"不适用于任何调用本机代码的内容,如com或pinvoke。