zoukankan      html  css  js  c++  java
  • ThreadPool学习草稿1

    原文发布时间为:2010-10-27 —— 来源于本人的百度文章 [由搬家工具导入]

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Threading;

    namespace TestThreadPool
    {
        class Program
        {
            static object locker = new object();
            static int runningThreads = 0;

            static void Main(string[] args)
            {
                try
                {
                    ThreadPool.SetMaxThreads(4, 4); //设置最大线程数 using System.Threading;

                    runningThreads = 10;
                    for (int i = 0; i < runningThreads; i++)
                    {

                        ThreadPool.QueueUserWorkItem(new WaitCallback(Auto), i);//线程池指定线程执行Auto方法
                    }

                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
                int iWhileNumber = 0;

                lock (locker)
                {
                    while (runningThreads > 0)
                    {
                        Monitor.Wait(locker);
                        iWhileNumber++;
                    }
                }
                Console.WriteLine("结束了,共循环了" + iWhileNumber + "次");
                //Environment.Exit(0);
                Console.ReadLine();
            }

            public static void Auto(object i)//多线程执行的方法
            {
                try
                {
                    int d = 4 / (int)i;
                    if (string.Equals(i, 2))
                    {
                        Thread.Sleep(1000);
                    }
                    Console.WriteLine(i.ToString());
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
                finally
                {
                    lock (locker)
                    {
                        runningThreads--;
                        Monitor.Pulse(locker);
                    }
                }
            }
        }
    }

  • 相关阅读:
    .NET互操作技术杂谈
    VS2008 Remote Debug HOW TO
    Entity Framework一对多关系或一对一关系删除子对象的方法
    Associations in EF Code First: Part 1 – Introduction and Basic Concepts
    如何管理Entity Framework中得事务
    在asp.net mvc3中编译视图文件
    entity framework中对关系使用默认规则与配置
    使用Entity Framework时动态生成lamda表达式
    asp.net mvc 身份验证中返回绝对路径的ReturnUrl
    Entity Framework 事务处理SaveChanges(false)
  • 原文地址:https://www.cnblogs.com/handboy/p/7163961.html
Copyright © 2011-2022 走看看