【C# 委托多线程简单应用】

本文详细介绍了C#中委托的基本用法,包括声明、执行和回调,以及如何结合线程池实现并发编程。展示了如何利用委托进行异步操作,并观察了线程池带来的并行效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

委托基本用法(示例)

第一步:声明一个委托
    public  delegate void MyDelegate(string result);
第二步:创建一个委托方法
    private static void MyFucToDelegate(string name)
    {
        Console.WriteLine(name);
       // Console.ReadKey();
    }
    private static void Fucdelegate()
    {
第三步:委托执行
         MyDelegate myDelegate = new MyDelegate(MyFucToDelegate);
         IAsyncResult iar = myDelegate.BeginInvoke("Hello~ start a invoked!",new AsyncCallback(callBackFuc),"回调传入的对象");

         Console.WriteLine("测试");

        if (iar.IsCompleted)
        {
            //未带返回值
            myDelegate.EndInvoke(iar);
            //若有string 类型返回值 
           //string str=myDelegate.EndInvoke(iar);
        }
        Console.ReadKey();

    }
      //委托执行完成回调
   private static void callBackFuc(IAsyncResult syncresult)
    {
        Console.WriteLine("回调函数的参数:" + syncresult.AsyncState);
    }
第四步:调用方法,执行委托方法
    static void Main(string[] args)
    {
        //委托
        Fucdelegate();
    }

执行结果

ThreadPoolMethod 线程池基本用法(示例)

第一步:创建一个线程池类,方法

public static class ThreadPoolMethod
{

    public static void DoThreadPool()
    {
        for (int i = 0; i < 5; ++i)
        {
            ThreadPool.QueueUserWorkItem(Do,"线程状态state");
        }

        Console.ReadKey();

      
    }
    static void Do(Object o)
    {
        for (int i = 0; i < 3; i++)
            Console.WriteLine("loop:{0}, thread id: {1}", i, Thread.CurrentThread.ManagedThreadId);
    }

}  
第二步:创建一个静态方法,调用上面类里面的方法

#region 线程池方法
private static void FucThreadPool()
{
ThreadPoolMethod.DoThreadPool();
}
#endregion

第三步:Main方法调用
    static void Main(string[] args)
    {
        //ThreadPool线程池
        FucThreadPool();
    }

第一次执行结果
第二次执行结果
**可以发现,线程是并行执行的,第一次执行和第二次执行结果不一样

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值