是否可以在多线程程序中实现Singleton Pattern?

时间:2014-09-08 08:54:05

标签: multithreading timer singleton

我的项目中有一个Windows.Forms.Timer。在Timer.Tick方法处理程序中,我创建了一个Manager类(My Own Class)的实例。在In Manager Constructor中,我创建了一些线程并将它们存储在字典中。字典位于名为TransManager的类中,该类使用单例模式实现。

public class TransManager {
private static volatile TransManager _Instance;
 public static TransManager Instance
 {
     get 
     {
         lock (syncRoot)
         {
             if (_Instance == null)
                 _Instance = new TransManager();
         }
         return _Instance;
     }
 }

}

我实现了TransManager类,因为我需要在同一个地方创建从不同Manager类实例生成的所有线程。

问题是当一个新的Manager实例在字典中添加最后一个线程消失的线程时!

注意:当我在Manager类的实例中创建所有线程时,所有线程都可以共享字典安全。据我所知,可以跨线程进行单例化吗?

我检查过;我的代码中没有Dictionary.Clear()

我希望问题很清楚!问我是不是。

谢谢。

0 个答案:

没有答案