2011-12-20 83 views
2

我对Asp.Net中需要创建单个线程的时间有疑问吗? 我是编程新手。 在此先感谢。在哪种情况下,我们需要创建一个新的线程?

+0

我不确定这是否正确表达。有很多很好的理由来创建一个新的线程(使用C#和其他语言),我们可以将网站全部列出。你是否遇到任何你不确定的事情? – corsiKa 2011-12-20 07:21:09

回答

2

由于您是编程新手,下面是您的简化事实:从不。您不必在ASP.NET中创建新线程。

当您获得更多经验时,您将了解到高级技巧。

+0

但是,如果我不创建一个线程。它引发错误:“ActiveX控件'8856f961-340a-11d0-a96b-00c04fd705a2'无法实例化,因为当前线程不在单线程单元中。”如何避免这个问题? – Tina 2011-12-21 06:59:06

4

Web应用程序中的表示层通常不需要自己创建额外的线程。 ASP.NET将管理线程(有时以令人惊讶的方式 - 它是线程敏捷,因此您可以在一生中找到一个请求在多个线程中处理)。

如果你正在编写一个能够以同步(阻塞)的方式处理每个请求的web应用程序,事情是相当简单的 - 如果你需要编写“长轮询”应用程序,你可能会期望几十或数十万个同时连接,全部等待基于事件的响应。 C#5和VB 11将使新的异步功能变得更简单。

通常,线程更有可能在表层创建,尽管可能仍然运行在ASP.NET中,但可能作为单独的Windows服务运行。但是,即使在那里,除非您真的需要它,否则值得尝试避免多线程的复杂性。

“富”客户端应用程序(WPF,WinForms的,Silverlight的)是可能更需要线程或至少某种形式的同步性,因为他们需要保持UI线程可以自由地处理UI事件,虽然他们可能有一些后台处理(无论是本地CPU绑定工作还是可能从磁盘或网络加载文件)。

+0

谢谢你的接吻。 – Tina 2011-12-21 06:48:14

1

如果您需要运行背景/单独(从应用程序)任务,您可能需要创建单独的线程(超出应用程序边界),通常通过常用数据库完成集成。 在ASP.NET中通常使用在服务器上运行的服务完成,例如向用户发送电子邮件通知等的服务。

+1

谢谢你的评论。这对我很有用。 – Tina 2011-12-21 07:02:09

+0

永远的快乐:) – Rizwan 2012-01-11 11:28:44

相关问题