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

C# UI中使用async与await防止线程阻塞的一个例子

private void button1_Click(object sender, EventArgs e)
{
Task.Run(() =>
{
while (true)
{
this.Invoke(new Action(() =>
{
textBox1.Text = DateTime.Now.ToString(); //刷新UI界面
}));
fun();//模拟耗时操作
}
});
}


private async void fun()
{//耗时操作
await Task.Run(() => {
for (int i = 0; i < 9999; i++)
{
Console.WriteLine(i);
}
});
}

说明:在这个例子中,通过按钮创建一个线程,线程执行一个循环。在新线程中需要执行刷新UI控件textBox1,同时需要新线程执行耗时任务,需要用到async与await配合

http://www.sczhlp.com/news/6445/

相关文章:

  • 【办公自动化】日常工作中如何使用Python自动化整理文件?
  • Ubuntu24做内网apt源
  • uniapp 页面左上角系统自带的返回箭头消失
  • 国家科学技术奖答辩PPT案例_科技进步奖ppt制作_科技发明奖ppt设计美化_自然科学奖ppt模板 | WordinPPT
  • 2025 贵阳 代码源 Day 16 模拟赛
  • 跨相机深度估计知识迁移技术解析
  • 运筹学的工具箱属性:基于模型化的优化方法集成
  • MainWP Cost Tracker笔记字段反射型XSS漏洞分析
  • 通过aop和注解实现返回列表支持排序的字段;通过mybatis-plus的Page类的OrderItem属性进行排序
  • 解密prompt系列58. MCP - 工具演变 MCP基础
  • 读开源项目成功之道05治理和托管模式
  • 联邦学习中的动态提示调优技术FedDPG
  • [0806/044639.668:ERROR:icu_util.cc(243)] Invalid file descriptor to ICU data received.
  • 论架构师的重要性
  • Cursor 支持 Claude 4.1 opus model 了
  • 王者归来 征途继续
  • 关于远程加载模块需要解决的问题
  • 2025 — 2026 西华师范大学程序设计算法协会 — 算法培训营 题解
  • 选无代码开发平台还是低代码平台
  • 使用ListBox实现一个对话框控件
  • 我的计算机使用观
  • 2025“钉耙编程”中国大学生算法设计暑期联赛(6)01/04/08/09
  • 为RTX5090安装推荐驱动后报错,Claude辅助快速定位并解决问题
  • 修复EXT2FSD 在win10下挂载ext4 (识别成ext3)造成的分区损坏
  • 基于YOLOv8的水体环境监控项目(精准识别水域废弃物与污染物)|完整源码数据集+PyQt5界面+完整训练流程+开箱即用!
  • java学习(8月5号)
  • 纯 C#实现+AOT 打造的多功能图片处理工具 ImageGlider
  • java高级技术
  • ROS2-相机模型与相机参数
  • 2025.8.5学习日记