ex-20-03

来自「Programming Csharp Source Code(代码) Prog」· 代码 · 共 81 行

TXT
81
字号
// Example 20-03: Simulating a shared resource

namespace Programming_CSharp
{
   using System;
   using System.Threading;

   class Tester
   {
      private int counter = 0;

      static void Main()
      {
         // make an instance of this class
         Tester t = new Tester();

         // run outside static Main
         t.DoTest();                 
      }

      public void DoTest()
      {
         Thread t1 = new Thread( new ThreadStart(Incrementer) );
         t1.IsBackground=true;
         t1.Name = "ThreadOne";
         t1.Start();
         Console.WriteLine("Started thread {0}",
            t1.Name);

         Thread t2 = new Thread( new ThreadStart(Incrementer) );
         t2.IsBackground=true;
         t2.Name = "ThreadTwo";
         t2.Start();
         Console.WriteLine("Started thread {0}",
            t2.Name);
         t1.Join();
         t2.Join();

         // after all threads end, print a message
         Console.WriteLine("All my threads are done.");
      }

      // demo function, counts up to 1K
      public void Incrementer()
      {
         try
         {
            while (counter < 1000)
            {
               int temp = counter;
               temp++; // increment

               // simulate some work in this method
               Thread.Sleep(1);

               // assign the decremented value
               // and display the results
               counter = temp;
               Console.WriteLine(
                  "Thread {0}. Incrementer: {1}", 
                  Thread.CurrentThread.Name,
                  counter);
            }
         }
         catch (ThreadInterruptedException)
         {
            Console.WriteLine(
               "Thread {0} interrupted! Cleaning up...",
               Thread.CurrentThread.Name);
         }
         finally
         {
            Console.WriteLine(
               "Thread {0} Exiting. ",
               Thread.CurrentThread.Name);
         }
      }
   }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?