• C# 多线程是否结束可通过线程池可以判断


    C# ManualResetEvent信号状态判断线程池是否结束 

    这是一段重要的代码,小猪两个小时的研究成果,记下来备查。

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading;
    
    namespace 线程池判断结束综合演示
    {
        class Program
        {
            public static int iCount = 0;  
            public static int MaxCount = 10;//允许线程池中运行最多10个线程
            static ManualResetEvent eventX = new ManualResetEvent(false);  //新建ManualResetEvent对象并且初始化为无信号状态
    
            static void Main(string[] args)
            {
                Console.WriteLine("ManualResetEvent初始为无信号状态 ");
                Console.WriteLine("线程池最大值为 {0} 个线程。", MaxCount);
                for (int iItem = 1; iItem <= MaxCount; iItem++)
                {
                    //插入队列元素
                    Console.WriteLine("加入线程 {0}", iItem);
                    ThreadPool.QueueUserWorkItem(new WaitCallback(fun1), (object)iItem);
                }
                Console.WriteLine("等待线程池完成操作。。。"); //等待事件的完成,即线程调用ManualResetEvent.Set()方法
                eventX.WaitOne(Timeout.Infinite, true); //WaitOne()方法使调用它的线程等待直到eventX.Set()方法被调用
                Console.WriteLine("线程池结束!");
                Console.ReadLine();
            }
    
            public static void fun1(object j)
            {
                Console.WriteLine(" {0} {1} :", Thread.CurrentThread.GetHashCode(), j.ToString());
                Thread.Sleep(1000);
                Interlocked.Increment(ref iCount);
                if (iCount == MaxCount)
                {
                    Console.WriteLine();
                    Console.WriteLine("设置ManualResetEvent为有信号状态,Setting eventX ");
                    eventX.Set();
                }  
    
            }
    
     
    
        }
    }
  • 相关阅读:
    如何将DataTable转换成List<T>
    关于SqlDataAdapter的使用
    VS 2010中JS代码折叠插件
    ASP.net中的几种分页方法
    学习jquery基础教程的一些笔记
    js中innerHTML与innerText的用法与区别
    SpringBoot 中使用shiro注解使之生效
    redis分布式锁
    使用ZSetOperations(有序)操作redis
    使用SetOperations(无序)操作redis
  • 原文地址:https://www.cnblogs.com/jimcsharp/p/5591711.html
Copyright © 2020-2023  润新知