BeginInvoke示例程序

本文通过一个具体的C#示例介绍了如何使用委托和异步编程技术来实现并发操作。示例展示了委托的定义与调用过程,以及如何利用BeginInvoke和EndInvoke方法进行异步任务的发起与结果获取,并通过回调函数处理异步操作完成后的逻辑。

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

//委托调用方法
            Func<string,string,string,string> myfunc= (p1,p2,p3)=>{
                Console.WriteLine("\n\n****************委托调用方法 Start 线程ID:{0}***************", Thread.CurrentThread.ManagedThreadId);
                Console.WriteLine(p1);
                Console.WriteLine(p2);
                Console.WriteLine(p3);
                Console.WriteLine("****************委托调用方法 End  线程ID:{0}***************", Thread.CurrentThread.ManagedThreadId);
                return $"这是委托调用的方法的返回值";
            };
            //回调函数
            AsyncCallback callback = t => {
                Console.WriteLine("\n\n****************回调函数 Start  线程ID:{0}***************", Thread.CurrentThread.ManagedThreadId);
                AsyncResult t1 =t as AsyncResult;
                ////AsyncDelegate方式还原委托对象
                Func<string, string, string, string> func1 = t1.AsyncDelegate as Func<string, string, string, string>;
                string emp = myfunc.EndInvoke(t);
                Console.WriteLine("****执行回调*******    " + emp);
                Console.WriteLine("****************回调函数  End   线程ID:{0}***************", Thread.CurrentThread.ManagedThreadId);
            };
            myfunc.BeginInvoke("委托方法入参1", "委托方法入参2", "委托方法入参3", callback, myfunc);
            for(int i = 0; i < 20; i++)
            {
                Console.WriteLine("\n****************主线程运算中...   线程ID:{0}***************", Thread.CurrentThread.ManagedThreadId);
            }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值