我创建了一个线程,该线程可以暂停。那么,如何杀死或终止挂起的线程?
我尝试了ABORT
该线程,但收到一条运行时错误消息,指出该线程已挂起并且无法中止。我一直在寻找终止方法或类似的方法,但它似乎不存在。
myThread := new Thread(@BigLoop);
myThread.Start;
myThread.Suspend;
myThread.Abort; <<<===exception is raised.
那么,你如何杀死或终止一个挂起的线程呢?
我创建了一个线程,该线程可以暂停。那么,如何杀死或终止挂起的线程?
我尝试了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)来通知线程它应该停止运行。请记住,“中止”不适用于调用本机代码的任何内容,例如 com 或 pinvoke。