- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
是否有可能根据 Thread
引用获取该线程的 ThreadStatic
值?
最佳答案
不,那是不可能的。与此类属性一样,[ThreadStatic]
属性被抖动识别。它生成对 CLR 的调用以获取指向类的线程本地存储的指针。这个辅助方法有多个版本,最基本的是 JIT_GetSharedGCThreadStaticBase()
。但是对于泛型类来说它变得更加复杂,例如,它可以有多个基于类型参数的静态变量。辅助函数有两个不明显的参数,模块 ID 和类 ID。这些 ID 取决于加载代码的 AppDomain。
长话短说,您没有机会进行相同的调用,辅助方法甚至都不会获取线程 ID,它由调用上下文暗示。
您可以使用 Thread.AllocateNamedDataSlot()
将任意数据挂起线程。但请注意,它是静态方法,也不采用线程 ID,它同样基于调用上下文。
这一切都是故意的。线程本地存储的一个非常好的特性是它始终 线程安全。允许从另一个线程访问它的后门会完全破坏该功能。如果您想这样做,您应该非常担心。例如,您可以使用由 ManagedThreadId 键入的自己的查找表。
关于c# - 如何获取另一个线程的 ThreadStatic 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28605611/
我正在使用 if(Thread.IsAlive) 检查线程的状况。该线程中正在运行一个表单。有时在执行过程中,即使窗体保持打开状态,对 Thread.IsAlive 的调用似乎评估为 false。我想
This question让我想到了 .NET 等价物。 ThreadState 有什么值(value)? Thread类的属性?在此代码示例中: if (someThread.ThreadState
我有以下代码。这可能是个愚蠢的问题,但我不确定是否需要同步。 class MyClass { [ThreadStatic] private static object _staticObjec
我们有一个相当大的现有代码库,用于构建在 ASP.NET 之上的各种网络服务,该代码大量使用访问 HttpContext.Current.User(包装为 Client.User ),我相当确定它在内
[ThreadStatic] 属性如何工作?我假设编译器会发出一些 IL 来填充/检索 TLS 中的值,但查看反汇编时它似乎并没有在那个级别执行它。 作为后续,如果你把它放在一个非静态成员上会发生什么
[线程静态] 私有(private)静态 Foo _foo; 公共(public)静态 Foo CurrentFoo { 得到 { 如果(_foo == null){ _foo = new Foo()
我们的 WCF 服务引用的库之一使用 ThreadStatic 变量。服务方法在每次调用开始时设置它的值。我想知道这是否安全——换句话说,我们能否保证只有一个线程专门用于整个调用?或者是否有可能调用可
对于一些静态方法,我意识到在操作过程中使用一个小数组来临时存储值是非常方便的。所述数组很有用,因为您需要索引,但每次调用该方法时都会分配那个小数组。 这是解决 C# 中缺少类 C 静态局部变量的好方法
有没有一种优雅的方法可以知道工作线程何时执行完毕,以便我可以访问它产生的资源? 例如,如果工作线程使用查询 SQL Server 列表 ServersSqlDataSourceEnumerator.I
我有一个需要几秒钟加载的表单。因此,我想显示一个带有文本“正在加载,请稍候”的小表格。表单加载完成后,必须关闭加载表单。 所以,我做了一个简单的类,它在线程中显示加载表单: public class
是否有可能根据 Thread 引用获取该线程的 ThreadStatic 值? 最佳答案 不,那是不可能的。与此类属性一样,[ThreadStatic] 属性被抖动识别。它生成对 CLR 的调用以获取
当我使用 ThreadStatic 属性探索线程和任务时,我遇到了一些奇怪的事情。我相信这可能非常特定于线程和任务。考虑以下代码片段: [ThreadStatic] static int range=
开始编辑 执行此操作的“正确”方法(4.5 之前)是使用此处概述的 SynchronizationContext:http://msdn.microsoft.com/en-us/magazine/gg
[ThreadStatic()]是什么意思 我得到了一段代码,我找到了[ThreadStatic()]在那里使用是什么意思....何时使用[ThreadStatic()] public class C
调用前: th.Abort(); 如何等待 ThreadState 变为 ThreadState.Abort 然后执行某些操作?可能吗? 最佳答案 您可以调用 Thread.Join() (MSDN)
ThreadStatic attribute将静态变量声明为每个线程唯一。您知道正确处理此类变量的简单模式吗? 我们在ThreadStatic之前使用的是一个ThreadContextManager。
怎么会像ThreadStatic在 TPL 任务中使用?我的理解(“Wrox Professional Parallel Programming with C#”,第 74 页)是任务可以在执行期间从
我想了解单例模式设计。我想从我的单例类中为每个线程创建单独的实例。所以我在下面提供了两种设计。 正在运行 class Program { static void Main(string[] a
我有一个我编写的日志记录框架,它能够跟踪“日志记录上下文”。它有一个可插入的策略框架,但我最常使用的是一个 ThreadStatic 变体,它在 [ThreadStatic] 中跟踪上下文。多变的。我
我正在阅读 tips and tricks发布,我想我会尝试一些我以前从未做过的 C# 东西。因此,下面的代码没有任何实际用途,只是一个“测试函数”,看看会发生什么。 无论如何,我有两个静态私有(pr
我是一名优秀的程序员,十分优秀!