Willkommen bei dotnet-snippets.de! Snippet hinzufügen Login Registrieren
Snippets in der Datenbank: 1563 | Anzahl registrierter User: 1895 | Besucher online: 204
Hauptmenü
Home
Top Ten
Zufälliger Snippet
FAQs
.NET Community
dotnet-forum.de
dotnet-kicks.de
Social

RSS Feeds
Rss Alle Snippets
Rss C#
Rss VB.NET
Rss C++
Rss ASP.NET
Partner
Member of Microsoft Community Leader/Insider Program (CLIP)

Singelton in C# - threadsicher implementiert


Autor: Rüdiger Vossel
Sprache: C#
Bewertung:
6.23 (3 votes)
Anzahl der Aufrufe: 5995
  
Kick it on dotnet-kicks.de  

Beschreibung:

Das Singelton-Pattern ist wohl eins der einfachsten und praxisrelevantesten Designpatterns.

Hier also einmal eine beispielhafte Implementierung in C#


Abgelegt unter: Singelton, Pattern, Designpattern.



C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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;
            }
        }
    }
Sie haben Fragen zu diesem Snippet oder brauchen Hilfe bei der .NET Entwicklung?
Freundliche und kompetente Entwickler helfen Ihnen gern weiter im Forum für .NET Entwicklung.



Kommentare:
(Zum Schreiben von Kommentaren bitte anmelden.)

Michael Hachen schrieb am:  08.05.2009 11:44:36

Warum so umständlich?
public static readonly Singleton Instance = new Singleton();
Keks1911 schrieb am:  17.06.2010 06:26:43

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.


Diese Snippets könnten für Sie interessant sein:

schlecht sehr gut
1 2 3 4 5 6 7 8 9 10
Nur angemeldete User können Snippets bewerten.