问题标签 [threadstatic]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 在多个线程中实例化非静态类时出现对象引用错误
我正在使用 C# 和 NUnit 框架在单独的线程中同时执行多个测试。我想记录某些动作之间的时间,并为此创建了一个 ActionTimeHelper 类。
下面是类的代码和使用类中方法的上下文
当我在调用 Login 方法的并行机器人中运行两个测试时,只有一个测试完成,另一个引发错误
我已将 actionList 设为 ThreadStatic,以便在其自己的线程上运行的每个测试都有自己的副本,因此我无法弄清楚为什么会出现错误。
注意:如果我一次运行一项测试,一切正常
有人可以指导我吗?谢谢您的帮助。
已阅读一些文章引用具有实例化对象的非静态成员,引用静态类(c#)中的实例化对象但无法与我的具体问题相关联
实际结果:空引用错误预期结果:无空引用错误
c# - 处理线程静态变量
我有ThreadStatic
一个静态类的成员。静态类用于多线程环境。我想确保当线程返回到线程池(或重新使用)时,成员被释放(或重新初始化),因此特定线程的任何后续使用都会获得变量的新副本。该成员必须保持静态,因此实例成员不会真正提供帮助。
我尝试过使用ThreadLocal
,AsyncLocal
但CallContext
这些都没有真正的帮助。(CallContext
主要用于概念验证,它是一个 .net 标准应用程序,因此 callcontext 无论如何都不起作用)。
这只是我为重新创建我的问题而编写的示例代码,用于ThreadStatic
测试。ThreadLocal
AsyncLocal
CallContext
上面的代码在单个线程中运行,因此可以重复使用该线程。
但是,从输出中可以看出,当进行第二次调用并重用线程 1 时,它仍然具有线程 0 设置的值。
ThreadStatic
重新使用线程时,有什么方法可以将变量重置为默认值或 null?
asp.net-mvc - ASP.NET MVC 5 - 当前线程可以在单个 http 请求期间更改吗?
有时(随机)我会遇到我的 [ThreadStatic] 属性为空,尽管它肯定是在请求开始时初始化的。
c# - .Net Core 3.1.6 ThreadLocal / ThreadStatic
关于C# 的快速问题ThreadStatic
,特别是 .Net Core 3.1.6..ThreadLocal
我宁愿不发布确切的示例,但它与此非常相似:
ParrallelEnumerable
然后我使用or从多个不同的线程访问所述对象Tasks.Parallel
,我遇到了一个非常有趣的异常,不幸的是,它使运行时崩溃了......
我的代码的目的是每个Thread
访问LocalObject
都会有它自己的实例,如图所示
ThreadLocal
.Net Core 3.1.6 周围/中是否有任何已知问题ThreadStatic
,我可以在哪里阅读它们?
如果 3.1.6 没有任何指示更改或不同,那么 5.0 中是否存在与相同属性相关的更改?如果这些都没有,那么 .Net 核心是否从它们的完整框架实现中改变了这些构造的行为?
感谢您的时间!
c# - 调用任务后丢失 [ThreadStatic] 值
我正在使用具有[ThreadStatic]
属性的变量来存储每个套接字的当前活动Session
(我使用WebSocket作为连接类型)。在 socket 的开头connect
,我将它的值分配给一个新Session
对象,然后执行一个Task
方法来获取输出。完成后Task
,Session
值变为null
。
ThreadStatic
宣言:
调用的任务方法:
任务执行部分:
这里有什么问题?