예제 #1
0
 public static void IncByOne(param p)
 {
     lock (p)
     {
         ++(p.acc);
     }
 }
예제 #2
0
        static void Main(string[] args)
        {
            int   numThreads = 2;
            param p          = new param();

            Thread[] threads = new Thread[numThreads];
            for (int i = 0; i < numThreads; i++)
            {
                Thread t = new Thread(() => IncByOne(p));
                threads[i] = t;
            }
            for (int i = 0; i < numThreads; i++)
            {
                threads[i].Start();
            }

            foreach (var t in threads)
            {
                t.Join();
            }

            Console.WriteLine("Value after {0} increments: {1}", numThreads, p.acc);
        }