Уроки C# – Управляй Как Бог / static / volatile / lock
Added 2022-08-08 11:03:17 +0000 UTCУроки C# – Управляй Как Бог / static / volatile / lock
Singleton:Double checked locking:
lock:
volatile:
static volatile ClassName Class;
static object SyncObject = new object();
public static ClassName GetInstance
{
get
{
if (Class == null)
lock (SyncObject)
{
if (Class == null)
Class = new ClassName();
}
return Class;
}
}
Comments
<div ><div><span class="text">Ничегошеньки не понимаю, но честно ставлю лайки - говорят- это помогает</span></div></div>
Neimar
2024-06-02 20:37:09 +0000 UTC<div ><div><span class="text">Вот это уже да, можно сократить =)</span></div></div>
Хачатур
2023-08-23 18:29:48 +0000 UTC<div ><div><span class="text">А что если поменять код в get таким образом?<br><br><br>get<br> {<br> lock (SyncObject)<br> {<br> return Class ?? (Class = new ClassName());<br> }<br> }<br>По идее же будет работать также как первоначальный код, то есть если переменная Class не null, то возвращает её, а если null, то создаёт новый экземпляр.</span></div></div>
Александр Белый
2023-08-23 17:42:46 +0000 UTC