AutoResetEventによる生産者消費者の実現

3011 ワード

ManulResetEventで生産者消費者を実現し、2つのManulResetEventタイプ変数を宣言し、その実用化は1つでもよい.
AutoResetEventで実現します.AutoとManualの違いは、Autoがスレッドを1つだけ起動し、Manualがすべて起動することです.
        public class AreTest

        {

            AutoResetEvent are;

            public AreTest(AutoResetEvent are)

            { this.are = are; }

            public void Add()

            {



                while (true)

                {

                    Thread.Sleep(1000);

                    Console.WriteLine(Thread.CurrentThread.Name + "\t ");



                    are.Set();

                    Console.WriteLine(" ");

                    are.Reset();

                    Console.WriteLine(" ");

                    are.WaitOne();



                }



            }

            public void Del()

            {

                while (true)

                {

                    Thread.Sleep(2000);

                    Console.WriteLine(Thread.CurrentThread.Name + "\t ");

                    are.Set();

                    Console.WriteLine(" ");

                    are.Reset();

                    Console.WriteLine(" ");

                    are.WaitOne();

                }

            }

        }