Asp.net 从访问公共存储的请求线程派生的任务
我正在编写一些可以被认为是消息总线的代码。在我开始处理任务之前,一切都很顺利 在我的特定实现中,由于我在web上下文中,我正在使用offAsp.net 从访问公共存储的请求线程派生的任务,asp.net,multithreading,task,httpcontext,Asp.net,Multithreading,Task,Httpcontext,我正在编写一些可以被认为是消息总线的代码。在我开始处理任务之前,一切都很顺利 在我的特定实现中,由于我在web上下文中,我正在使用offHttpContext.Current.Items在请求的整个生命周期中存储消息,直到在请求结束时取出消息为止。正如您可以想象的那样,当我开始使用异步任务时,操作会发生在其他线程上,而我遇到的问题就不复存在了 我理解为什么会发生这种情况,但我想提出一个解决方案,它不需要我将消息总线传递到每个任务中 我不介意将实现更改为不使用HttpContext.Current
HttpContext.Current.Items
在请求的整个生命周期中存储消息,直到在请求结束时取出消息为止。正如您可以想象的那样,当我开始使用异步任务时,操作会发生在其他线程上,而我遇到的问题就不复存在了
我理解为什么会发生这种情况,但我想提出一个解决方案,它不需要我将消息总线传递到每个任务中
我不介意将实现更改为不使用HttpContext.Current.Items
,但语义应该是相同的。具体地说,我有一个在请求生命周期内存在的存储,并且从主请求线程派生的线程可以访问它
有人知道我该怎么做吗
作为补充,如果一个请求生成了一个日志运行任务,并且该请求在任务完成之前返回,如果该任务尝试查找存储,我会想象该存储将为null或抛出异常 每个请求接收多少条消息?每个消息使用一个异步任务吗?