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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.08.2016, 12:20   #1
BadCats
Пользователь
 
Аватар для BadCats
 
Регистрация: 31.01.2016
Сообщений: 67
По умолчанию Создание объекта блокировки?

всем привет, имеется такой пример:
Код:
class Program
    {
        static object locker = new object();

        static void WriteSecond()
        {
            for (int i = 0; i < 20; i++)
            {
                lock (locker)
                {
                    Console.ForegroundColor = ConsoleColor.Yellow;
                    Console.WriteLine(new string(' ', 10) + "Secondary");
                    Console.ForegroundColor = ConsoleColor.Gray;
                    Thread.Sleep(100);
                }
            }
        }

        static void Main()
        {
            Console.SetWindowSize(80, 45);

            ThreadStart writeSecond = new ThreadStart(WriteSecond);
            Thread thread = new Thread(writeSecond);
            thread.Start();
          
            for (int i = 0; i < 20; i++)
            {
                lock (locker)
                {
                    Console.ForegroundColor = ConsoleColor.Green;
                    Console.WriteLine("Primary");
                    Console.ForegroundColor = ConsoleColor.Gray;
                    Thread.Sleep(100);
                }
            }

            // Delay.
            Console.ReadKey();
        }
    }
как видно, создается две критические секции lock, и они используют один объект блокировки в двух разных методах - одна критическая секция в методе WriteSecond, а вторая в методе Mian() , но обе эти секции все равно находятся в пределах одного класса - класса Program.
Возможно точно такое же "разделение" объекта блокировки между двумя критическими секциями, если эти секции будут находится разных классах?
Если такое возможно, то попрошу привести пример кода с разъяснением к нему, а если нет - то почему?
BadCats вне форума Ответить с цитированием
Старый 25.08.2016, 18:59   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Непонятный вопрос, как создадите объект, так и будет. Тут он статик и private.


Не надо в Помощи студентам создавать такие темы, для этого есть нормальные разделы.
http://www.programmersforum.ru/forumdisplay.php?f=55
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 25.08.2016, 19:00   #3
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

да хоть в 33 классах, важно какой объект пошел в блокировку, а не его расположение.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание объекта из переменной wowsel Общие вопросы Delphi 9 14.06.2014 13:15
[Java] Создание объекта внутри объекта этогоже класса. Svarogich Помощь студентам 2 01.08.2011 16:03
Создание объекта. 1ord PHP 1 04.06.2011 20:10
Создание объекта.. RYaroslav Общие вопросы C/C++ 10 16.05.2011 23:23
Динамическое создание объекта Fruit Общие вопросы Delphi 5 24.01.2008 11:00