zoukankan      html  css  js  c++  java
  • C#如何判断线程池中所有的线程是否已经完成之Demo

    start:
    
                System.Threading.RegisteredWaitHandle rhw = null;
                new Action(() =>
                {
                    for (var i = 0; i < 30; i++) {
                        new Action<int>((index) =>
                        {
                            System.Threading.Thread.Sleep(1000);
                            Console.WriteLine(System.Threading.Thread.CurrentThread.Name + "执行完毕" + index);
                        }).BeginInvoke(i, null, null);
                    }
                }).BeginInvoke(null, null);
                rhw = System.Threading.ThreadPool.RegisterWaitForSingleObject(new System.Threading.AutoResetEvent(false), new System.Threading.WaitOrTimerCallback((obj, b) =>
                {
                    int workerThreads = 0;
                    int maxWordThreads = 0;
                    //int  
                    int compleThreads = 0;
                    System.Threading.ThreadPool.GetAvailableThreads(out workerThreads, out compleThreads);
                    System.Threading.ThreadPool.GetMaxThreads(out maxWordThreads, out compleThreads);
                    //Console.WriteLine(workerThreads);
                    //Console.WriteLine(maxWordThreads);
                    //当可用的线数与池程池最大的线程相等时表示线程池中所有的线程已经完成 
                    if (workerThreads == maxWordThreads)
                    {
                        //当执行此方法后CheckThreadPool将不再执行 
                        rhw.Unregister(null);
                        //此处加入所有线程完成后的处理代码
                        Console.WriteLine("f");
                        rhw = null;
                    }
                }), null, 100, false);
                while (rhw != null) { }
                System.Threading.Thread.Sleep(10000) ;
                goto start;
                Console.WriteLine("finished");
  • 相关阅读:
    策略模式
    Java反射机制
    两个无符号的正大数相加
    MySQL大表优化方案
    造成mysql慢查询的原因
    mysql对于很长的字符列的索引方案
    lyt经典版MySQL基础——函数
    lyt经典版MySQL基础——存储过程
    lyt经典版MySQL基础——变量
    lyt经典版MySQL基础——视图
  • 原文地址:https://www.cnblogs.com/waw/p/8420933.html
Copyright © 2011-2022 走看看