Esempio n. 1
0
        private static void MyHttpRequest(object state)
        {
            // Thread.Sleep(1000);
            Console.WriteLine(String.Format("哈哈:{0}", ++i));

            MutipleThreadResetEvent countdown = state as MutipleThreadResetEvent;

            //发送信号量 本线程执行完毕
            countdown.SetOne();
        }
Esempio n. 2
0
        /// <summary>
        /// 主方法
        /// </summary>
        /// <param name="args">参数</param>
        static void fun2()
        {
            //假设有100个请求线程
            int num = 100;

            //使用 MutipleThreadResetEvent
            using (var countdown = new MutipleThreadResetEvent(num))
            {
                for (int i = 0; i < num; i++)
                {
                    //开启N个线程,传递MutipleThreadResetEvent对象给子线程
                    ThreadPool.QueueUserWorkItem(MyHttpRequest, countdown);
                }

                //等待所有线程执行完毕
                countdown.WaitAll();
            }

            Console.WriteLine("所有的网络请求以及完毕,可以继续下面的分析...");
            Console.ReadKey();
        }