Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.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
Asp.net 从访问公共存储的请求线程派生的任务_Asp.net_Multithreading_Task_Httpcontext - Fatal编程技术网

Asp.net 从访问公共存储的请求线程派生的任务

Asp.net 从访问公共存储的请求线程派生的任务,asp.net,multithreading,task,httpcontext,Asp.net,Multithreading,Task,Httpcontext,我正在编写一些可以被认为是消息总线的代码。在我开始处理任务之前,一切都很顺利 在我的特定实现中,由于我在web上下文中,我正在使用offHttpContext.Current.Items在请求的整个生命周期中存储消息,直到在请求结束时取出消息为止。正如您可以想象的那样,当我开始使用异步任务时,操作会发生在其他线程上,而我遇到的问题就不复存在了 我理解为什么会发生这种情况,但我想提出一个解决方案,它不需要我将消息总线传递到每个任务中 我不介意将实现更改为不使用HttpContext.Current

我正在编写一些可以被认为是消息总线的代码。在我开始处理任务之前,一切都很顺利

在我的特定实现中,由于我在web上下文中,我正在使用off
HttpContext.Current.Items
在请求的整个生命周期中存储消息,直到在请求结束时取出消息为止。正如您可以想象的那样,当我开始使用异步任务时,操作会发生在其他线程上,而我遇到的问题就不复存在了

我理解为什么会发生这种情况,但我想提出一个解决方案,它不需要我将消息总线传递到每个任务中

我不介意将实现更改为不使用
HttpContext.Current.Items
,但语义应该是相同的。具体地说,我有一个在请求生命周期内存在的存储,并且从主请求线程派生的线程可以访问它

有人知道我该怎么做吗


作为补充,如果一个请求生成了一个日志运行任务,并且该请求在任务完成之前返回,如果该任务尝试查找存储,我会想象该存储将为null或抛出异常

每个请求接收多少条消息?每个消息使用一个异步任务吗?