Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# IIS是否为每个连接的用户提供一个线程?_C#_Iis - Fatal编程技术网

C# IIS是否为每个连接的用户提供一个线程?

C# IIS是否为每个连接的用户提供一个线程?,c#,iis,C#,Iis,我正在研究开发线程安全应用程序。我知道用户可以在同一个应用程序上使用多个线程(如果CPU使用多个线程),但我不确定会发生什么,以及当您有5个用户使用同一个应用程序时,IIS如何处理用户 IIS做什么?所有用户都在同一个线程上工作吗?或者他们每个人都有一个线程 说到IIS,我是个新手,所以请容忍我。我的问题将帮助我理解是否需要在代码中锁定公共静态方法(线程安全非常重要)。这里是一个很好的入门读物-。您应该记住的重要一点是:IIS不会为用户创建线程,它会为并发调用创建线程。当然,如果不是纯静态方法,

我正在研究开发线程安全应用程序。我知道用户可以在同一个应用程序上使用多个线程(如果CPU使用多个线程),但我不确定会发生什么,以及当您有5个用户使用同一个应用程序时,IIS如何处理用户

IIS做什么?所有用户都在同一个线程上工作吗?或者他们每个人都有一个线程


说到IIS,我是个新手,所以请容忍我。我的问题将帮助我理解是否需要在代码中锁定公共静态方法(线程安全非常重要)。

这里是一个很好的入门读物-。您应该记住的重要一点是:IIS不会为用户创建线程,它会为并发调用创建线程。当然,如果不是纯静态方法,您应该创建线程安全的静态方法。

不要忘记会话状态可能会导致来自同一用户的并发调用序列化。这是否意味着持久连接框架(如)将阻止每个连接用户一个线程?@SteveB,这完全取决于实现。一个好的实现应该使用异步调用,而不是阻塞线程。您可以在不阻止每个用户一个线程的情况下实现持久连接。@SteveB我不熟悉
信号器
,但每个用户使用一个线程是非常浪费的。@SteveB:请看一下asp.net在异步请求期间是如何管理线程的