Для пользователей, которые регистрируются. Если Вам не приходит письмо с подтверждением email, пишите на admin[at]quizful[dot]net - будем подтверждать вручную. Просим прощения за доставленные неудобства.

С уважением,
команда Quizful
Знаете ли Вы, что

После прохождения теста можно комментировать вопросы теста, а Ваши комментарии увидят модераторы теста и пользователи, которым когда-либо эти вопросы попадались.

Топ контрибуторов
loading
loading
Лента обновлений
ссылка May 17 19:13
Комментарий от elirijndael:
Полностью согласен с valid_name.
ссылка May 17 18:47
Комментарий от Aleksandr89:
Неплохой тест. Для тех кто хочет ещё попрактиковатьс...
ссылка May 17 15:13
Комментарий от dpdpdp:
Поменяйте радиокнопки на чекбоксы.
Во втором варианте про...
ссылка May 17 11:55
Комментарий от Torredo812:
вот это подвох!!!
забываешь что х увеличился))и думае...
ссылка May 17 10:50
Комментарий от lesha1980:
Хороший вопрос. Получается, что проверяется только x в...
Статистика

Тестов: 130, вопросов: 5791. Пройдено: 126750 / 526548.

Потокобезопасный синглтон

Автор: vidom  к списку      

Вопрос
Каким образом можно создать потокобезопасную реализацию синглтона в C#?
Ответ
Есть несколько способов, но основными являются:

1. Инициализация синглтона в статическом конструкторе, который является потокобезопасным.

public class Singleton
{
    private Singleton() { }
    private static Singleton instance;
    static Singleton()
    {
        instance = new Singleton();
    }
    public static Singleton Instance 
    { 
        get
        { 
            return instance;
        }
    }
}
2. Инициализация в объявлении поля.

public class Singleton
{
    private Singleton() { }
    private static Singleton instance = new Singleton();
    public static Singleton Instance 
    { 
        get
        { 
            return instance;
        }
    }
}
3. Реализация с использованием объектов синхронизации.

public class Singleton
{
    private Singleton() { }
    private static Singleton instance;
    private static object _syncRoot = new object();
    public static Singleton Instance 
    { 
        get
        {
            if (Singleton._instance == null)
            {
                lock (_syncRoot)
                {
                    if (Singleton._instance == null)
                    {
                        Singleton.instance = new Singleton();
                    }
                }
            } 
            return Singleton.instance;
        }
    }
}

Если Вам понравился вопрос, проголосуйте за него

Голосов: 15  loading...
typik   Sansend   WebCas   HalfDm   mualse   Karasb   smallgreensin   viap   kuper   Engineer9   slot_608   yohan   vegas   Neser   DarkDeny