我创建的线程和该线程可以被暂停。那么,我该如何杀死或终止暂停的线程呢?暂停的线程可以中止吗?
我试图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;
请注意,使用中止是不可取的。更好的解决方案是使用waithandle(autoresetevent/manualresetevent)通知线程它应该停止运行。请记住,“中止”不适用于调用本地代码的任何内容,如com或pinvoke。
CK。这是真的,但如果你正试图在你的程序关闭中放弃一个线程会怎么样。那有关系吗? – ThN
恢复它首先 – kludg
@Serg,它的工作....感谢 – ThN