Thread.Suspend和Abort 的区别

理解:

在C#中,Thread.Suspend是一个方法,用于暂停当前线程的执行。它会导致线程停止执行并进入挂起状态,直到调用Thread.Resume方法才能继续执行。

然而,Thread.Suspend方法已被标记为不推荐使用,并且在未来的版本中可能会被移除。这是因为使用Thread.Suspend方法可能导致线程死锁或其他潜在的问题。当一个线程被暂停时,它可能会持有一些关键资源,导致其他线程无法访问这些资源。

相反,推荐使用更安全和可靠的方法来控制线程的执行,如使用Monitor、Mutex或Semaphore等同步机制,或者使用更高级的线程管理类如Task和ThreadPool。

总结起来,不建议使用Thread.Suspend方法,因为它存在潜在的问题和风险。应该使用更安全和可靠的方式来控制线程的执行。
abort就像播放器的终止,资源释放了,但是播放器没有关闭,所以产生了这样一个现象,为什么终止之后,

会调用ResetAbort来恢复,其实这个本身并不会起到任何作用,可以说abort终止了的只能重新来过,因为暂用的资源被释放了,

ResetAbort主要是恢复线程后续操作,让它执行完自我释放,这样我们就可以托管给资源回收系统。
posted @ 2020-06-21 10:22  敖毛毛  阅读(486)  评论(0编辑  收藏  举报