c# - 为什么不无缘无故地使用 thread.sleep,并向程序员解释

标签 c# asp.net

在我们的项目中传递代码时,我遇到了一个 web 方法,它的末尾有这段代码:

thread.sleep(6000);
return true;

现在,这样做是为了延迟来自客户端的 jQuery ajax 调用,并且 ajax 动画将显示更长的时间。

在我看来这是非常错误的。 UI 和服务器端之间不应该有这种连接。如果他希望动画时间更长,他可以在客户端使用 setTimeOut 函数。

这是我的问题:我如何向程序员解释为什么这是错误的?不仅仅是因为客户端/服务器的事情,还因为为什么要在网站上调用 thread.sleep

最佳答案

延迟时:

  • 您正在使用/阻塞线程
  • 你正在消耗内存
  • 你有一个开放的 TCP/IP 连接

这些都是服务器上的昂贵资源

因为:

  • 如果有另一个请求,则必须创建一个新线程的可能性更大,因此这将使用 CPU、内存等,这将延迟该请求。 (转到句子开头)。
  • 更多的内存消耗,意味着更多的页面错误,更大的磁盘队列。所有请求都需要更长的时间。
  • TCP/IP 连接是一种有限的资源。

关于c# - 为什么不无缘无故地使用 thread.sleep,并向程序员解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4144846/

相关文章:

c# - LINQ最适用于哪些场景?

c# - Aforge,将像素数据转换为UnmanagedImage

c# - 从 JavaScript(不是 AJAX!)调用函数隐藏代码

c# - 隐藏或删除下拉列表中的重复选项

c# - 即时管理和搜索 100,000 多个对象的有效方法? (C#)

c# - 在 C# 中使用嵌入式资源图标作为应用程序图标

c# - 我的 sql 数据库表中没有任何内容?

javascript - 如何创建一个拥有自己的 css 和 javascript 的用户控件

c# - 无效的 Json 原语

c# - 如何将 <xml></xml> 等 xml 标签格式更改为 <xml/>