【发布时间】:2014-06-27 14:23:01
【问题描述】:
我看不到在 .NET 中等待会话状态操作的方法。我意识到这几乎没有用,甚至更糟,如果会话状态存储在进程中,可能只会增加开销,但是如果会话状态通过数据库、状态机或其他设备的线路保持不变,那就太好了等待会话状态操作。
【问题讨论】:
-
我迷路了...例子?
-
假设您只是从 HttpContext.Current.Session[key] 获取会话数据。这是不可等待的。这是同步的。所以如果我没记错的话,这个线程会在等待状态机或数据库返回结果时阻塞。
-
是的,调用线程将在处理请求时阻塞。但是你可以创建一个
Tasks这个方法...... -
一位同事刚刚指出,会话数据可能会在管道中较早加载(甚至在您请求之前),因此等待结果没有意义。如果是这种情况,那么我可以理解为什么别无选择。我只是想确定一下,因为我认为如果会话通过网络存储在数据库或状态机上会很好......
-
这取决于会话提供程序,我已经构建了自己的 SQL 会话提供程序,并且请求按上述方式处理,如果发生任何抢先加载,则它是特定于实现的。
标签: .net async-await session-state