threadstatic

    17热度

    2回答

    我有一个组件需要在每个线程前存储static值。它是一个通用组件,可以在许多场景中使用,而不仅仅在ASP.NET中使用。 我想使用[ThreadStatic]属性来实现我的目标。假设它在ASP.NET场景中也可以正常工作,因为我假定每个请求都在一个自己的线程中调用。 经过一番研究,我发现Scott Hanselman的this Blog Post说在ASP.NET中使用[ThreadStatic]

    1热度

    2回答

    这里是我的代码: <ThreadStatic()> Dim _GlobalConnection As TdConnection Public Property GlobalConnection As TdConnection Get If _GlobalConnection Is Nothing Then _GlobalConnection = New T

    15热度

    3回答

    更新:正如我应该预料的那样,社区对这个问题的正确建议是“测量并看到”。 chibacity posted an answer有一些非常好的测试,为我做了这个;同时,我写了一个我自己的测试;我看到的性能差别竟是如此巨大,I felt compelled to write a blog post about it. 不过,我也承认Hans's explanation了ThreadStatic属性确实不

    9热度

    2回答

    我写的小测试程序,并很惊讶为什么lock {}解决方案的性能比无锁但[ThreadStatic]属性在静态变量更快。 [ThreadStatic]片段: [ThreadStatic] private static long ms_Acc; public static void RunTest() { Stopwatch stopwatch = new Stopwatch();

    0热度

    1回答

    我创建了一个使用线程静态变量的库,供同一个库的各个类使用。一旦初始化线程,所有这些类一起工作以实现使用这些变量的任务。 现在我需要在ASP.NET应用程序中使用这个相同的库,并且我已经知道threadstatic不会使我的变量成为单个线程的全局变量,但这些变量将在线程间共享。 我在回避将变量传递给函数,因为它听起来不太好。所以我需要一个解决方案来使我的库适用于这两种类型的应用程序(winforms

    1热度

    1回答

    我在ASP.NET webform代码隐藏中有一个静态连接变量。在页面加载事件中,我在单独的线程中执行多个方法。每个线程利用此连接对象的线程静态实例。我想要做的是,在页面的dispose事件中,一次性清除该连接变量的所有静态实例。如果这是不可能的,那么我将不得不关闭每个方法结尾处的连接,但是如果可能的话,我想在一行代码中处理它。

    2热度

    1回答

    由于线程敏捷性在ASP.Net中,ThreadStatic不适用于在Web应用程序中将静态属性访问从一个请求分隔到另一个请求。 为了避免大量的电话,以HttpContext.Current.Items和相关null检查等等,是否有由.NET框架,由此我可以创造出的作品有点像ThreadStatic属性提供的任何弄虚作假,但利用HttpContext.Current.Items如果当前代码正在ASP

    4热度

    1回答

    这不是一个如何自动调用dispose的问题 - 我的问题是相反的: 我有一个线程池,其中每个线程都有一个ThreadStatic图形(它是从图像创建的)执行文本大小测量。现在我遇到了这样的问题:即使阅读TextRenderingHint属性失败(导致ArgumentException),图形似乎也会被处理掉。 是否有一些配置图形的机制如果线程长时间处于空闲状态?

    105热度

    2回答

    [ThreadStatic]属性如何工作?我认为编译器会发出一些IL来填充/检索TLS中的值,但是看到反汇编似乎并没有在这个层次上做到这一点。 作为一个后续,如果你把它放在非静态成员上会发生什么?我们有一个开发人员犯了这个错误,编译器甚至没有提出警告。 更新 第二个问题回答这里:ThreadStatic Modified with Static C#

    10热度

    1回答

    我在我的asp.net mvc3应用程序(在IIS7上)使用专有的IoC机制,它在[ThreadStatic]字段中保存状态,因此依赖于HttpApplication.BeginRequest,HttpApplication.EndRequest并且它们涉及的(单个)请求的整个同步执行在同一个线程上执行。 这个假设是否正确?