Feedback

C# - Singelton in C# - threadsicher implementiert

Veröffentlicht von am 1/20/2009
(3 Bewertungen)
Das Singelton-Pattern ist wohl eins der einfachsten und praxisrelevantesten Designpatterns.

Hier also einmal eine beispielhafte Implementierung in C#
public class Singelton
    {
        private static Singelton me = null;
        static readonly object padlock0 = new object(); //Zur Threadsicherheit

        private Singelton()
        {
            //Initialize
        }

        public static Singelton GetInstance()
        {
            lock (padlock0)
            {
                if(me == null) 
                {
                    me = new Singelton();
                }
                return me;
            }
        }
    }
Abgelegt unter Singelton, Pattern, Designpattern.

2 Kommentare zum Snippet

Michael Hachen schrieb am 5/8/2009:
Warum so umständlich?
public static readonly Singleton Instance = new Singleton();
Keks1911 schrieb am 6/17/2010:
Sorry, Michael, das ist Quatsch. Der Punkt ist ja, dass das Singleton threadsicher sein soll.

OP:
1. Das Teil heißt Singleton.
2. Du hast folgendes vergessen zu erwähnen:
2a. Diese Klasse darf kein einziges public-Member haben.
2b. Jede public Methode - auch static, sofern sie auf die Instanz zugreifen - dieser Klasse muss am padlock0 synchronisiert werden, weil sonst die Aufrufe nicht atomar sind.
 

Logge dich ein, um hier zu kommentieren!