线程在多线程应用程序中中止时的内存状态



我没有找到一个相关的搜索命中,如果它是一个多线程应用程序,当线程被中止时,线程正在使用的内存会发生什么。

会不会有内存泄漏?

另外,如果我没有在catch条款中调用Thread.ResetAbort()ThreadAbortException将被扔到外捕获和外部捕获(如果有的话(中......

谢谢。

  • 线程不使用内存。进程具有内存。线程在其父进程中运行。

  • 在 C# 中,对象分配的对象不会有所不同,具体取决于哪个线程分配了它们。阅读垃圾回收。

另外,如果我没有在 catch 子句中调用 Thread.ResetAbort(( 将异常 线程中止异常被抛到外部捕获和外部捕获(如果有的话(...

有一种叫做文档的东西,这是一个非常简单的查找。让我为你引用。我所做的只是在谷歌中输入"ThreadAbortException",这导致我

https://msdn.microsoft.com/en-us/library/system.threading.threadabortexception%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396

现在引用:

当调用 Abort 方法销毁线程时, 公共语言运行库引发线程中止异常。 ThreadAbortException 是一个可以捕获的特殊异常,但它 将在捕获块的末尾自动再次引发。什么时候 引发此异常,运行时执行所有 finally 块 在结束线程之前。因为线程可以做一个无限的 在 finally 块中计算或调用 Thread.ResetAbort 取消 中止,不能保证线程会永远结束。如果你 想要等到中止的线程结束,可以调用 线程连接方法。加入是一个阻止调用,直到 线程实际上停止执行。

就这么简单。它会自动在捕获结束时重新抛出。

最新更新