asp.net – “HttpContext.Current”属性和相关事物的交叉线程使用
|
我从&基本ASP.NET与C#中的示例>下面的语句:
我想知道大胆部分的根本原因,一件事导致另一个,这里是我的想法:
但我不太确定如果我犯了任何错误。 任何评论将深表谢意。 谢谢。 加 这里的堆栈限制为用户堆栈。 解决方法有四件事情一起工作,导致你正在问的行为:> HttpContext是一个实例对象,它的引用可以在HttpContext.Current中找到 结论我们可以从上面的动词: >因为HttpContext是一个实例对象而不是静态的,我们需要它的引用来访问它 把这一切,在什么原因HttpContext.Current不工作在一个新的线程? Thread.CurrentThread引用更改,发生在切换线程时,更改HttpContext.Current引用,这将阻止我们到达我们想要的HttpContext实例。 要重申,这里唯一神奇的事情是Thread.CurrentThread引用每个Thread中不同的对象。 HttpContext就像任何其他实例对象一样工作。由于同一AppDomain中的线程可以引用相同的对象,所以我们要做的就是将HttpContext的引用传递给我们的新线程。没有要加载的上下文信息或类似的东西。 (有一些相当严重的潜在问题,绕过HttpContext到其他线程,但没有任何东西阻止你这样做)。 我在研究过程中遇到的几个最后一个副词: >在某些情况下,线程的ExecutionContext被“流”(复制)从一个线程到另一个线程。为什么HttpContext不会“流”到我们的新线程?因为HttpContext不实现ILogicalThreadAffinative接口。存储在ExecutionContext中的类只有在实现了ILogicalThreadAffinative的情况下才会流动。> ASP.NET如何移动HttpContext从线程到线程(线程敏捷)如果没有流?我不完全确定,但它看起来可能会通过它在HttpApplication.OnThreadEnter()。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 重定向页面的TempData?
- asp.net – 允许搜索机器人在没有会话ID的情况下抓取您的网
- asp.net – 当要复制的lob数据的插入长度超过配置的最大值6
- asp.net – 如何忽略正则表达式的情况?
- asp.net – ObjectCache的“Set”和“Add”有什么区别?
- asp.net – 防止XSS(跨站脚本)
- asp.net-mvc – MVC 5:Asp.net身份:如何建模UserRole
- asp.net-web-api – 使用swashbuckle api文档的http basic
- asp.net – IE7和8随机挂起CSS图像
- 为什么我不能在我的代码asp.net c#中使用app_code中的代码文
- asp.net – Linq对sql对象是否可序列化为会话状态
- asp.net-mvc – 为id而不是name设置HtmlFieldPre
- 使用名为“PropertiesController”的控制器的ASP
- asp.net-mvc – MVC应用程序调试错误:viewstate
- asp.net – 在webrequest上停止了应用程序池
- asp.net – 形式auth超时和会话超时的差异
- 使用带数组的ASP.NET中继器?
- 如何在ASP.NET WebForms中实现TDD
- asp.net-mvc-3 – MVC 3 – Html.EditorFor似乎缓
- asp.net-mvc – 我的剃刀视图的自定义基页类型,如
