0
複数のクライアントで使用される、と私はそれについての質問があります。C#シングルトンは - 私は最近、Singletonパターンについて学んできた
次シングルトンを考える:
public class Singleton
{
private static readonly Lazy<Singleton> lazyInstance =
new Lazy<Singleton>(() => new Singleton(), true);
private Singleton()
{
// Stuff that must only happen once.
Console.WriteLine("Single ctor");
}
public static Singleton Instance => lazyInstance.Value;
public static void DoSomething()
{
Console.WriteLine("Hello world!");
}
public string Name { get; set; }
}
して、次のように同じアセンブリに住んでいるクライアント:
public class ClientA
{
public ClientA
{
var instance = Singleton.Instance;
}
}
public class ClientB
{
public ClientB
{
var instance = Singleton.Instance;
}
}
は、両方のクライアントが使用してしまいます同じシングルトンインスタンス?
私の実際の例ははるかに複雑で、最初のインスタンス化中にシングルトンクラスのいくつかのプロパティを設定するための長期実行操作があり、このシングルトンを使用するすべてのクライアントが同じインスタンスを使用していることを確認したい長時間実行される操作は1回だけ実行されます。
注:私の実際の世界の例では、クライアントクラスは既に私が制御できない基本クラスから派生しています。
複数のインスタンスがある場合は、もはやシングルトン(定義による)ではありません。 – Servy
なぜ複数のインスタンスが作成されると思いますか? – usr