当前位置: 首页 > news >正文

C#回调函数

1、定义并初始化委托

 public delegate void CallbackDelegate(string message);//定义一个委托类型CallbackDelegate callbackDelegate;//声明一个委托对象
  /// <summary>/// 定义委托对应的函数/// </summary>/// <param name="str"></param>public void CallBackFunc(string  str){Console.WriteLine($"我是回调函数,我输出内容:{str}");}
 callbackDelegate = CallBackFunc;//实例化委托

2、定义调用回调函数的主函数

 /// <summary>/// 定义主函数/// </summary>/// <param name="callback"></param>public void DoSomething(CallbackDelegate callback){// 执行一些操作string result = "操作完成";// 调用回调函数callback(result);}

3、调用主函数

   DoSomething(callbackDelegate);//调用主函数

输出:

我是回调函数,我输出内容:操作完成

上面的代码中DoSomething是一个主函数,这个函数有一个委托类型的参数,所以调用时直接传入一个委托即可,并且DoSomething函数执行快结束的时候调用了传入的委托,这个委托绑定的函数就叫做“回调函数”,所以这里的回调函数就是主函数快要结束的时候调用一个委托对象,又因为委托绑定的是函数,所以调用的本质上就是一个函数,这里称为回调函数。回调函数的使用常见于异步调用,我们将耗时操作放在另一个线程中执行,当这个耗时操作完成以后调用回调函数来告诉主线程耗时操作已经完成了。

http://www.lryc.cn/news/443931.html

相关文章:

  • Matplotlib绘制热力图
  • 手写SpringMVC
  • mysql学习教程,从入门到精通,SQL 删除数据(DELETE 语句)(18)
  • 周边游小程序开发
  • 初级前端面试
  • 微软AI核电计划
  • 图片马赛克处理(Java)
  • python+selenium实现自动联网认证,并实现断网重连
  • 基于机器学习的注意力缺陷/多动障碍 (ADHD)(python论文+代码)HYPERAKTIV
  • Spring Boot 集成 Redisson 实现消息队列
  • go语言Map详解
  • C++——已知数组a[6]={1,3,5,7,9};输入一个数值,要求按照现有排序规律将它放入数组当中。
  • 云计算第四阶段---CLOUD Day7---Day8
  • 深入解析ThingsBoard与ThingsKit物联网平台的差异
  • 五、CAN总线
  • Linux:终端(terminal)与终端管理器(agetty)
  • 钉钉与MySQL对接集成获取部门列表2.0打通EXECUTE语句
  • 微信小程序点赞动画特效实现
  • Day25笔记-普通文件读写with上下文二进制文件csv文件
  • MySQL安装教程
  • 【Windows】快速帮你解决如何找到 Windows 上的 .condarc 文件
  • 『正版软件』XYplorer 专业的 Windows 文件管理工具软件
  • “吉林一号”宽幅02B系列卫星
  • 我的AI工具箱Tauri版-FasterWhisper音频转文本
  • Java后端中的延迟队列实现:使用Redis与RabbitMQ的不同策略
  • Linux中使用cp命令的 -f 选项,但还是提醒覆盖的问题
  • 互联网技术的持续演进:从现在到未来
  • vscode安装ESLint与Vetur插件后自动修复代码不生效
  • 2848、与车相交的点
  • 基于k8s手动部署rabbitmq集群(Manually Deploying RabbitMQ Cluster Based on k8s)