当我们使用一个线程时,它会在C#中作为并行进程或串行进程工作吗?

时间:2010-04-26 13:12:23

标签: c# asp.net

当我们使用线程时,它是否可以作为C#中的并行进程或串行进程使用?

4 个答案:

答案 0 :(得分:5)

如果您有多个处理器或核心,很可能它们将并行运行。否则,它们在pseudo-parallel中运行,这意味着它们将按顺序运行但不确定。

答案 1 :(得分:1)

当您需要从ASP.NET页面请求调用2个或更多WebServices或Queries时,您可以(应该)使用Threads并行执行它们。所花费的总时间将是最长动作的时间,而不是所有任务的总和。

答案 2 :(得分:0)

您已将此标记为asp.net问题,因此我认为您需要提供有关您尝试执行的操作的更多信息。在ASP.NET中,每个请求都在一个单独的线程上处理,因此它已经是多线程的。如果真正需要并行执行长时间运行的任务,则应该只创建自己的线程。多线程在winforms应用程序中更常用,以确保在运行计算或检索/发送数据等时GUI仍然对用户作出响应。

也就是说,有些时候你可能会在ASP.NET中使用新线程,所以请提供更多详细信息。

答案 3 :(得分:0)

如果您在代码中使用线程,那么操作系统将为这些线程分配处理时间。

如果你的系统只有一个处理器,那么每个线程将被分配少量的处理时间(这是“关键部分”的来源,因为它将阻止操作系统在该部分内暂停一个线程)。 p>

如果您的系统有多个处理器,则每个线程可以在单独的处理器上运行。理论上,如果系统每个线程有一个处理器,那么它们将在等于最长线程的时间帧中执行。实际情况并非如此,因为通常在给定系统上运行许多线程。