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

WinForm事件遇到异步方法的处理方式

我们在WinForm开发的过程中,如果我们遇到异步的需求是无法直接处理的,因为WinForm的大部分事件其实是同步事件,他没有完善的机制去等待异步的响应(当然部分事件除外,比如shown);在这种情况我们可以通过Task.Run(…)方法来实现

Task.Run(() => GetComputerInfoTable());
periodicService = new PeriodicService();
Task.Run(() => periodicService.StartAsync());

类似这样的代码块它可以以一种模拟同步的情况来执行异步,在这个方法里面() => GetComputerInfoTable():这是一个lambda表达式,它定义了一个匿名方法,该方法在调用时执行GetComputerInfoTable方法。Lambda表达式() =>表示一个没有参数的方法。如果你需要传递参数,你可以在括号内指定它们。GetComputerInfoTable()是要异步执行的方法的调用。采用这种方法他同步会返回一个task对象,那么对于这个事件来说整体是同步的,他无需等待异步的响应,但是异步的线程队列又不会被杀死,仍可正常执行;
在这里插入图片描述
这样我们就可以放入Load事件去执行一些异步线程,但是这种情况也只能适用于无需窗体UI响应的情况,因为这种情况实际上是跳过了异步的响应对象,如果对于UI的异步等待响应的话,则需要进一步的处理


http://www.kler.cn/a/459300.html

相关文章:

  • 【AI】最近有款毛茸茸AI生成图片圈粉了,博主也尝试使用风格转换生成可爱的小兔子,一起来探索下是如何实现的
  • 三维场景重建3D高斯点渲染复现
  • Python 列表的高级索引技巧
  • 设计模式 创建型 建造者模式(Builder Pattern)与 常见技术框架应用 解析
  • Linux 服务器启用 DNS 加密
  • 解决chatgpt(mac app登陆)出现报错:获取您的 SSO 信息时出错
  • 5_SparkGraphX讲解
  • 职场中哪些话中话,弦外之音
  • word中插入zotero引用
  • QT写的动态正弦曲线图显示并打印
  • 多模态机器人
  • 24.小R的随机播放顺序<字节青训营-中等题>
  • 实战指南:Shiro、CAS打造完美单点登录体验
  • 运行python程序报错 undefined symbol: ffi_type_uint32 的参考解决方法
  • 马原复习笔记
  • AWS K8s 部署架构
  • 在云服务器中编译IDF(ESP32库)
  • 2024年个人总结
  • 使用 PyInstaller 和 hdiutil 打包 Tkinter 应用为 macOS 可安装的 DMG 文件
  • 统计颜色Count Color(POJ2777)题解
  • 【UE5 C++课程系列笔记】16——DeveloperSettings(开发者设置)的基本使用——创建配置文件
  • 【linux进程】进程终止进程等待
  • CSS(层叠样式表)基础选择器,文字控制属性
  • SpringBoot发邮件(带附件)
  • 《Vue进阶教程》第二十九课:立即执行的回调
  • OpenTK 光照与材质详解