c# - 将大类从静态转换为非静态的步骤是什么?

标签 c# .net multithreading static

<分区>

我有一个相当大的开源类,我需要将其从静态转换为非静态。

我需要这样做的原因是让它线程安全;我想要每个线程一个类的副本。

一般来说,将 C# 库从静态库转换为非静态库的推荐步骤是什么?

最佳答案

我已将数据层从静态类升级到无静态类。所以

第 1 步:删除类和方法上的“static”关键字

第二:在你的旧静态类中也添加一个单例

public class Foo 
{

    #region Singleton

    Foo()
    {
    }

    public static Foo Instance
    {
        get
        {
            return Nested.instance;
        }
    }

    class Nested
    {
        static Nested() { }

        internal static readonly Foo instance = new Foo();
    }

    #endregion

第三:用 Foo.Instance.DoSomething() 代替 Foo.DoSomething() 替换每次调用你的类

第四:编译获利

关于c# - 将大类从静态转换为非静态的步骤是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7676533/

相关文章:

c - 是否有必要调用 pthread_join()

python - 如何在 Python 中对特定函数的一个实例进行多线程/多处理?

c# - 如何从 C# 中的线程访问非静态方法

c# - 试图避免嵌套的 SqlConnection

c# - .NET Socket ReadAsync 在写循环 Async/Await 期间被阻塞

c# - Regex.Match 不适用于查找其他文本 C# 中包含的字符串

c# - JSonConverter 如何进行泛型反序列化

.net - 将 .Net 面板控件导出到图像

c# - 如何通过鼠标和按键事件确定 TreeView 上的节点

.net - 更改 AES 加密中的共享 key