杀死一个线程我在一个项目中有以下代码片段:publicvoidStart(){Threadt=newThread(NotifyIfNecessary);线程.Add(t);t.开始();t.Abort());我想要的是线程“t”应该执行NotifyIfNecessary方法,并且仅在该方法执行完毕时中止。在我当前的代码中,t.Abort()被过早调用。这是因为您正在创建一个新线程,启动它,然后立即通过调用Thread.Abort()方法从您刚刚创建的线程中Thread.Abort()处理它。你不需要这样做;当NotifyIfNecessary完成执行时,您的线程将完成。只需删除行t.Abort();并且您的代码应该可以正常工作。您首先不应调用abort,因为abort仅适用于失败的用户代码(在单独的AppDomain中运行)。在您的情况下,只需允许NotifyIfNecessary运行完成(即不要调用中止)。结束。但也许您真正想要做的是,在NotifyIfNecessary完成之前,您的主线程不会继续。如果是这种情况,则调用线程“加入”。您不需要调用Abort,因为线程会在NotifyIfNecessary完成时自动停止。如果您希望NotifyIfNecessary完成,请不要中止线程。如果您希望该函数仅在NotifyIfNecessary完成后继续使用join或不在另一个线程中调用该函数。我认为没有必要调用Abort()。NotifyIsNeccessary完成后,线程完成。您想在Start()结束时等待线程完成吗?以上就是《C#学习教程:杀死一个线程》分享的全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
