学习笔记10 线程正在终止
2011-07-18 13:05
162 查看
今天在工作做 遇到一个新的问题:线程正在终止
因为我使用了: Server.Transfer() 的方法 所以出现了这样的异常, 下面是我查询资料时候发现的文章 转载下:
在使用 Response.End、Response.Redirect 或 Server.Transfer 时出现 ThreadAbortException
此问题出现在 Response.Redirect 和 Server.Transfer 方法中,因为这两种方法均在内部调用 Response.End。
• 对于 Response.Redirect,请使用重载 Response.Redirect(String url, bool endResponse),该重载对 endResponse 参数传递 false 以取消对Response.End 的内部调用。例如: Response.Redirect ("nextpage.aspx", false); 如果使用此替代方法,将执行 Response.Redirect 后面的代码。
• 对于 Server.Transfer,请改用 Server.Execute 方法。
因为我使用了: Server.Transfer() 的方法 所以出现了这样的异常, 下面是我查询资料时候发现的文章 转载下:
在使用 Response.End、Response.Redirect 或 Server.Transfer 时出现 ThreadAbortException
症状
如果使用 Response.End、Response.Redirect 或 Server.Transfer 方法,将出现 ThreadAbortException 异常。您可以使用 try-catch 语句捕获此异常。原因
Response.End 方法终止页的执行,并将此执行切换到应用程序的事件管线中的 Application_EndRequest 事件。不执行 Response.End 后面的代码行。此问题出现在 Response.Redirect 和 Server.Transfer 方法中,因为这两种方法均在内部调用 Response.End。
解决方案
要解决此问题,请使用下列方法之一:• 对于 Response.End,调用 HttpContext.Current.ApplicationInstance.CompleteRequest 方法而不是 Response.End 以跳过 Application_EndRequest 事件的代码执行。• 对于 Response.Redirect,请使用重载 Response.Redirect(String url, bool endResponse),该重载对 endResponse 参数传递 false 以取消对Response.End 的内部调用。例如: Response.Redirect ("nextpage.aspx", false); 如果使用此替代方法,将执行 Response.Redirect 后面的代码。
• 对于 Server.Transfer,请改用 Server.Execute 方法。
相关文章推荐
- UNIX环境编程学习笔记(26)——多线程编程(一):创建和终止线程
- 逆向工程核心原理学习笔记(二十三):栈帧10:设置返回值,删除栈帧&main()函数终止
- Java并发学习笔记(4)线程的取消,关闭和异常终止
- 学习笔记之线程、Thread类和线程终止相关整理(下)——线程异常&JVM停止
- UNIX环境编程学习笔记(26)——多线程编程(一):创建和终止线程
- Win 32 多线程程序设计学习笔记之五:终止线程
- OAF学习笔记-10-Update的操作
- Java并发学习笔记(13)线程之间的协作(Object.wait(),notifu(),notifyAll() Thread.join())
- 初探swift语言的学习笔记五(线程)
- <JAVA学习笔记4>——进程、线程简单介绍
- Solaris 10学习笔记
- Java-J2SE学习笔记-线程-生产者消费者问题
- Angularjs学习笔记10_directive3
- MatLab建模学习笔记10——利用罚函数求解非线性规划问题
- java学习笔记.10——书写格式
- c# 正在终止线程 关闭UdpClient
- pthread线程学习笔记一
- Linux进程线程学习笔记:进程间通信之 管道
- Java学习笔记18天---(10)
- redis 学习笔记整理(正在逐步完善中)