c# - 在什么场景下我们需要创建一个新的线程?

标签 c# asp.net multithreading

<分区>

我有疑问,我们什么时候需要在Asp.Net中创建单线程? 我是编程新手。 提前致谢。

最佳答案

Web 应用程序中的表示层通常不需要自己创建额外的线程。 ASP.NET 将为您管理线程(有时会以令人惊讶的方式 - 它是线程敏捷,因此您会发现单个请求在其生命周期中处理了多个线程)。 p>

如果您正在编写一个可以以同步(阻塞)方式处理每个请求的 Web 应用程序,事情就相当简单了 - 如果您需要编写“长轮询”应用程序,您可能会期望数十或数十万个同时连接,都在等待基于事件的响应。 C# 5 和 VB 11 将通过新的异步功能简化这一过程。

通常线程更有可能在比表示层更低的层中创建,可能作为单独的 Windows 服务运行,尽管可能用于仍在 ASP.NET 中运行的 Web 服务。然而,即便如此,也值得尝试避免多线程的复杂性,除非您确实需要它们。

“富”客户端应用程序(WPF、WinForms、Silverlight)非常更有可能需要线程或至少某种形式的异步,因为它们需要保持 UI 线程空闲以处理 UI 事件,虽然它们可能需要进行一些后台处理(无论是本地 CPU 密集型工作还是可能从磁盘或网络加载文件)。

关于c# - 在什么场景下我们需要创建一个新的线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8571980/

相关文章:

c# - 为空时创建新 SqlConnection 的最佳方法

javascript - ASP.NET 中的自定义复选框设计(ICheck JS)

asp.net - 使用 ASP.NET Identity 创建无密码的用户

c# - C# 中多线程的 Lambda 表达式

c# - 超时后从集合中删除项目

c# - Qna 和 LUIS 在下一步可以处理输入之前中断对话

c# - WPF 中的 KeyDown 事件中使用正则表达式不限制某些特殊字符

c# - 在并行运行 Selenium 测试的同时录制视频

c# - 从隐藏的边界域中获取值(value)?网络

c - 用于(多个)客户端和服务器游戏的共享内存和信号量