gpt4 book ai didi

asp.net - Visual Studio Asp.Net 开发服务器真的是多线程的吗?

转载 作者:行者123 更新时间:2023-12-03 12:57:01 26 4
gpt4 key购买 nike

我正在调试在本地开发服务器(cassini?)中运行的 VS2010 中的 WebProject。其中一个 aspx 页面调用 ManualResetEvent.WaitOne(),另一个 Page aspx 页面调用 ManualResetEvent.Set()(在同一个 Global 对象上)以释放第一页。

当我查看 VS2010 中的线程列表时,似乎有很多工作线程。但是,Web 服务器似乎在被 ManualResetEvent.WaitOne() 调用阻止时停止处理任何内容。因此,除非 .WaitOne() 超时,否则 ManualResetEvent.Set() 不会加载。

这里发生了什么?

// Sample Code

Class SyncTest {

private System.Threading.ManualResetEvent eConnected =
new System.Threading.ManualResetEvent(false);
private bool isConnected;

public SyncTest ()
{
this.isConnected = false;
}

public void SetConnected(bool state)
{
isConnected = state;
if (state)
eConnected.Set();
else
eConnected.Reset();
}

public bool WaitForConnection(int timeout)
{
return eConnected.WaitOne(timeout);

}
}

最佳答案

Web 服务器一次只处理来自每个用户的一页。

如果您希望从一个用户请求的页面并行运行,您必须使页面(除了一个)无 session 。

EnableSessionState="false"@Page使页面无 session 的指令。

这当然意味着您无法使用 session 数据识别请求。如果您想知道谁请求了该页面,则必须在请求中将其发送。

关于asp.net - Visual Studio Asp.Net 开发服务器真的是多线程的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7931901/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com