Как использовать оператор lock в статических методах - C#

Узнай цену своей работы

Формулировка задачи:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
 
namespace ConsoleApplication6
{
    class Program
    {
        static void Main(string[] args)
        {
            Thread[] t = new Thread[2];
            t[0] = new Thread(new ParameterizedThreadStart(Add));
            t[1] = new Thread(new ParameterizedThreadStart(Add));
            t[0].Start(null);
            t[1].Start(null);
        }
        public static void Add(object o)
        {
            for (int i = 1; i < 4; i++)
            {
                
                Console.WriteLine(i);
                
                Thread.Sleep(1000);
            }
        }
    }
 
}
Привет всем, вот код программы в которой бы хотелось использовать lock. Но метод статический и lock(this){} не получится. Как тут его можно применить?

Решение задачи: «Как использовать оператор lock в статических методах»

textual
Листинг программы
using System;
using System.Threading;
 
namespace ConsoleApplication6
{
    class Program
    {
        static object locker = new object();
 
        static void Main(string[] args)
        {
            Thread[] t = new Thread[2];
            t[0] = new Thread(new ParameterizedThreadStart(Add));
            t[1] = new Thread(new ParameterizedThreadStart(Add));
            t[0].Start(null);
            t[1].Start(null);
        }
        public static void Add(object o)
        {
            lock (locker)
            {
                for (int i = 1; i < 4; i++)
                {
 
                    Console.WriteLine(i);
 
                    Thread.Sleep(1000);
                }
            }
        }
    }
 
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.25 из 5
Похожие ответы