C#同步和异步(三)带回调委托的异步调用

本文探讨了在C#中如何使用回调委托进行异步调用。通过示例代码展示了当异步操作完成后,如何触发回调函数执行,确保在每个异步调用结束后能够接收到执行结束的通知。
摘要由CSDN通过智能技术生成

什么情况下用到回调?

之前我们说过异步调用时调用方是不会等待的,任由被调函数在新的线程中执行。但有时我们希望能够获知异步调用的结束与否。或者希望在调用结束后执行某一个方法那该怎么办?

在BeginInvoke()方法中涉及到的参数中,有一个涉及到的是回调委托。这个委托就是专门用来回调用的,具体使用如下代码:

#region //带有回调函数功能的调用方法
/*public delegate void AsyncCallback(IAsyncResult ar);*/
//AsyncCallback myCallBack = ar =>     //所谓的回调就是异步执行完成后调用的方法
//{
//    Console.WriteLine("回调委托执行结束\n");
//};


//实际的回调函数
public static void CallBack(IAsyncResult ar)
{
    Console.WriteLine("回调委托执行结束");
}
AsyncCallback myCallBack = CallBack;   //声明定义一个委托对象。也可使用上面的Lamda表达式。


private void button3_Click(object sender, EventArgs e)
{
    //输出开始时间,当前线程名
    Console.WriteLine("回调异步调用开始,当前线程为:" + Thread.CurrentThread.ManagedThreadId.ToString("00") + '\n');

    Action<string> action1, action2;    //声明委托对象action1,action2
    action1 = this.doSomething1;         //将方法
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值