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