未处理的“System.Threading.ThreadStateException”类型的异常出现在 mscorlib.dll 中。
其他信息: 线程被挂起;正在尝试中止。
是怎么回事啊?
而当我在th.Abort();之前加上一句th.Resume();也就是先将挂起的线程继续,然后再执行终止就不会有这个提示了,不知上面原因,请各位高手帮忙指点
7 个解决方案
#1
不推荐使用thread.Resume()和thread.Suspend()方法...
#2
那你推荐一个方法啊
#3
try
{
tb.abort()
}
catch
{
//不管它
}
{
tb.abort()
}
catch
{
//不管它
}
#4
调用Abort方法,会在调用此方法的线程上引发 ThreadAbortException,以开始终止此线程的过程。调用此方法通常会终止线程。
如果在已挂起的线程上调用 Abort,则将在调用 Abort 的线程中引发 ThreadStateException,并将 AbortRequested 添加到被中止的线程的 ThreadState 属性中。直到调用 Resume 后,才在挂起的线程中引发 ThreadAbortException。
如果在已挂起的线程上调用 Abort,则将在调用 Abort 的线程中引发 ThreadStateException,并将 AbortRequested 添加到被中止的线程的 ThreadState 属性中。直到调用 Resume 后,才在挂起的线程中引发 ThreadAbortException。
#5
如果想实现线程的挂起及重新恢复,可以使用互斥量比如Mutex来实现...
#6
具体如何实现,可以看看愚翁大哥写的这篇文章...
http://blog.csdn.net/Knight94/archive/2006/08/24/1111267.aspx
http://blog.csdn.net/Knight94/archive/2006/08/24/1111267.aspx
#7
好的,我看看先
#1
不推荐使用thread.Resume()和thread.Suspend()方法...
#2
那你推荐一个方法啊
#3
try
{
tb.abort()
}
catch
{
//不管它
}
{
tb.abort()
}
catch
{
//不管它
}
#4
调用Abort方法,会在调用此方法的线程上引发 ThreadAbortException,以开始终止此线程的过程。调用此方法通常会终止线程。
如果在已挂起的线程上调用 Abort,则将在调用 Abort 的线程中引发 ThreadStateException,并将 AbortRequested 添加到被中止的线程的 ThreadState 属性中。直到调用 Resume 后,才在挂起的线程中引发 ThreadAbortException。
如果在已挂起的线程上调用 Abort,则将在调用 Abort 的线程中引发 ThreadStateException,并将 AbortRequested 添加到被中止的线程的 ThreadState 属性中。直到调用 Resume 后,才在挂起的线程中引发 ThreadAbortException。
#5
如果想实现线程的挂起及重新恢复,可以使用互斥量比如Mutex来实现...
#6
具体如何实现,可以看看愚翁大哥写的这篇文章...
http://blog.csdn.net/Knight94/archive/2006/08/24/1111267.aspx
http://blog.csdn.net/Knight94/archive/2006/08/24/1111267.aspx
#7
好的,我看看先