0

根据msdn, HttpResponse.End()似乎抛出异常。现在我可以选择返回一个值来表示结束线程(它只有 2 个函数深)或者我可以调用 end()。

我知道抛出异常要慢得多(阅读 C#/.NET 测试的评论),所以如果我想要一个快速的 webapp,我应该考虑在不调用它很容易时不调用它吗?

-edit- 我在某些函数和类的构造函数中确实有一个函数调用,以确保用户已登录。所以我在足够多的地方调用 HttpResponse.End() 尽管希望在常规站点使用中它不会经常发生.

4

2 回答 2

2

只需使用Response.End. 在编写代码以提高性能之前,先编写代码以实现可维护性。

此外,对 Web 应用程序而言重要的性能指标是可扩展性。也就是说,您不应该问“我可以多快处理这个单个请求”,而是“我可以同时处理多少个请求?”。

异常不会影响您的可伸缩性,并且在总体方案中,单个请求额外的几微秒是什么:记住在网络往返中至少需要50 毫秒:另外 100 微秒是噪音。

于 2010-05-30T23:34:52.210 回答
2

您可以使用 HttpResponse.Flush 将数据推送到客户端,而不是完全终止请求,从而避免引发潜在的异常。

注意:调用 Response.End 时并不总是抛出该异常,只有当您过早结束请求时才会抛出该异常。

于 2010-05-30T23:16:47.783 回答