.net判断线程池中的所有线程都已完成

 static double number1 = -1;

static double number2 = -1;

public static void Main()
        {
            // 获取线程池的最大线程数和维护的最小空闲线程数
            int maxThreadNum, portThreadNum;
            int minThreadNum;

            ThreadPool.GetMaxThreads(out maxThreadNum,out portThreadNum);
            ThreadPool.GetMaxThreads(out minThreadNum, out portThreadNum);
            Console.WriteLine("最大线程数:{0}", maxThreadNum);

            Console.WriteLine("最小空闲线程数:{0}", minThreadNum);
            // 函数变量值
            int x = 15600;
            // 启动第一个任务:计算x的8次方
            Console.WriteLine("启动第一个任务:计算{0}的8次方。", x);
            ThreadPool.QueueUserWorkItem(new WaitCallback(TaskProc1), x);

            // 启动第二个任务:计算x的8次方根
            Console.WriteLine("启动第二个任务:计算{0}的8次方根。", x);
            ThreadPool.QueueUserWorkItem(new WaitCallback(TaskProc2), x);
            // 等待,直到两个数值都完成计算
            while (number1 == -1 || number2 == -1) ;

            // 打印计算结果
            Console.WriteLine("y({0}) = {1}", x, number1 + number2);

            Console.ReadKey(true);

        }


        
        // 启动第一个任务:计算x的8次方
        static void TaskProc1(object o)
        {
            number1 = Math.Pow(Convert.ToDouble(o), 8);
        }
        // 启动第二个任务:计算x的8次方根
        static void TaskProc2(object o)
        {
            number2 = Math.Pow(Convert.ToDouble(o), 1.0 / 8.0);
        }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值