Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.04.2012, 02:23   #1
clions
Новичок
Джуниор
 
Регистрация: 11.04.2012
Сообщений: 2
Печаль Синглтон. Исключение при вызове метода через глобальную точку доступа.

Здравствуйте

Подскажите пожалуйста, что не так?
При вызове метода через глобальную точку доступа, происходит исключение, мол нет экземпляра О_о.

Инициализация синглтона происходит в статическом конструкторе, пробывал и другие способы http://www.quizful.net/interview/csh...safe-singleton, не помогло =(

Вот код синглтона ( это с исходника аддона, он был заброшен год назад, тогда все работало по словам разработчика.):
PHP код:
internal class TaskManager
    
{
        public static 
Thread TaskManagerThread = new Thread(Instance.ActiveTaskThread);

        public static 
TaskManager Instance;
        static 
TaskManager()
        { 
            
Instance = new TaskManager Tasks = new List<Task>() }
        }

        public 
void LoadTaskFromSubProfile(Sub subProfile) {..}

        private 
void ActiveTaskThread() {...}
        
        public  List<
TaskTasks get; private set; }
... 

Последний раз редактировалось clions; 12.04.2012 в 13:30. Причина: Убрал мусор.
clions вне форума Ответить с цитированием
Старый 12.04.2012, 07:05   #2
ds.Dante
Старожил
 
Аватар для ds.Dante
 
Регистрация: 06.08.2009
Сообщений: 2,992
По умолчанию

Строчка
Код:
public static Thread TaskManagerThread = new Thread(Instance.ActiveTaskThread);
Выполняется раньше, чем статический конструктор, поэтому прога пытается обратиться к нулевому Instance. Занеси эту строчку также в конструктор, чтобы порядок выполнения был явным.


Цитата:
Сообщение от clions Посмотреть сообщение
тогда все работало по словам разработчика.
А вот это самое интересное. Надо попробовать на старой Студии.

Последний раз редактировалось ds.Dante; 12.04.2012 в 07:08.
ds.Dante вне форума Ответить с цитированием
Старый 12.04.2012, 12:18   #3
clions
Новичок
Джуниор
 
Регистрация: 11.04.2012
Сообщений: 2
По умолчанию

Сделал как Вы сказали, все работает как часисики
Доробатываю код на VS2010.

Благодарю за оказанную помощь! Уважаемый ds.Dante!
clions вне форума Ответить с цитированием
Старый 13.04.2012, 21:09   #4
ds.Dante
Старожил
 
Аватар для ds.Dante
 
Регистрация: 06.08.2009
Сообщений: 2,992
По умолчанию

..........
ds.Dante вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
организовать связь двух модулей через глобальную переменную m_kostik C++ Builder 1 06.12.2011 23:33
Что нужно передавать в качестве параметра обработчика нажатия кнопки при его вызове из другого метода? Вадим Мошев Общие вопросы Delphi 7 03.05.2011 14:31
Ошибка при вызове метода класса coNsept Общие вопросы C/C++ 2 14.12.2010 13:09
tchart - Как при наведении курсора на определенную точку сериэса узнать точку наведения и отобразить её xaero93 Помощь студентам 0 22.04.2009 19:28