【问题标题】:placeholder for storing temp values in c# thread context用于在 c# 线程上下文中存储临时值的占位符
【发布时间】:2010-09-08 20:28:41
【问题描述】:

我想将一些信息(键值对)存储在 c# 线程上下文或类似内容中(就像 web 请求的 httpcontext 一样)。

我希望能够将此信息(键值对)存储在线程上下文(或类似的东西)中的某处,以便我的代码始终可以从其运行的当前线程中读取这些值。

在我的应用程序中,我有一个 API 调用链,并且无法将此信息从一个方法传递给另一个方法(已经放弃了这个选项!)

注意 - 此线程在 Asp.Net 应用程序中作为异步操作运行。

【问题讨论】:

    标签: c# multithreading


    【解决方案1】:

    您是否正在使用ThreadStatic attribute 寻找Thread Local storage

    public static class ThreadLocalExample
    {
        // There will be one Foo instance per thread.
        // Each thread will have to initialize it's own instance.
        [ThreadStatic]
        private static Foo bar;
    }
    

    当然,您可以在上面添加一些辅助方法或属性来帮助您管理实例,包括确保在每个线程上进行初始化。

    【讨论】:

    • 修复了属性 ThreadLocal -> ThreadStatic 希望你不要介意。
    • @Chris,当然应该是ThreadStatic。谢谢指正。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-08
    相关资源
    最近更新 更多