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

winform+Task+async

一个有意思的问题:

假设一个winform程序,需要运行异步任务进行业务处理,那么最常见的实践方式是怎样的?

那肯定是task+async呀,对,就是这样,但如果想让windows 挂载这个程序,使用命令行运行,那么原有的方法还可行吗?比如以下代码:

 private void Form1_Load(object sender, EventArgs e){LogHelper.WriteLog("", "", "Form1_Load");var args = Environment.GetCommandLineArgs();if (args != null && args.Length> 1){if (args.Contains("-a")){Task ts = Task.Run(async () =>{//...
             });ts.ContinueWith(t => {LogHelper.WriteLog("", "", "end");Application.Exit();});}}}    

答案是不行的,因为task运行的是异步任务,那么这个异步任务是交给后台线程处理的,而task会立即返回,从而触发ContinueWith,从而关闭整个程序。

而理解了这一点,就会明白了,其实非常简单,既然是task运行异步任务,那么就在异步任务运行后再执行ContinueWith好了,于是在task后添加一行代码:

ts.Wait();

添加此行代码后,程序在被调用时会始终等待异步处理结果,一旦处理完成,则会自动结束程序。

http://www.hskmm.com/?act=detail&tid=34463

相关文章:

  • AI元人文:跨学科视野下的人工智能伦理新范式
  • Rust 开发最佳实践(Rustlang Best Practices)
  • Why dont Japanese people reply to messages
  • 20232301郑好 实验二 后门原理与实践
  • 2025年复合钢丝网厂家推荐排行榜,昆山高精密网版,复合钢丝网公司精选!
  • 20232322 2025-2026-1 《网络与系统攻防技术》实验二实验报告
  • 消防局的设立
  • Python 潮流周刊#73:让我们对 PyPI 温柔一点,好吗?
  • 2025 年中国超声波流量计行业品牌全景分析报告:十大高性能品牌技术、性能与市场优势深度解析
  • 2025年精密弹簧厂家推荐排行榜,微型精密弹簧,不锈钢精密弹簧,高弹性精密弹簧公司推荐!
  • 2025网络推广服务推荐:云数智推,专业定制化营销解决方案!
  • React+Three.js 实现 Apple 2025 热成像 logo
  • 详细介绍:遥感目标检测数据集汇总,覆盖城市问题/工业安全/农业健康/室内场景……
  • 数据采集与融合作业1
  • CSP-S2023题解
  • 2025年氧化镁厂家最新推荐排行榜,活性氧化镁,肥料级氧化镁,优质供应与技术实力之选!
  • 运算符与自增自减
  • 2025年通风天窗/排烟天窗/通风气楼厂家最新推荐榜单,屋顶通风器/顺坡气楼/10A/1型/TC5A/TC12B/屋脊通风天窗公司推荐!
  • 使用autoDL gpu云服务器训练yolo的常用操作 - 东南西北风
  • 软件工程第三次作业-结对项目
  • with关键字
  • 2025精密球轴承优质厂家推荐:无锡雨露精工,国产高端定制首选!
  • 自定义注解
  • 2025 年电磁流量计最新推荐榜,聚焦企业技术实力与市场口碑深度解析
  • 2025 年涡轮流量计厂家企业品牌推荐排行榜,揭秘行业前十优质品牌涡轮流量计公司推荐
  • 2025 年涡街流量计厂家企业品牌推荐排行榜,实力铸就良好口碑涡街流量计公司推荐
  • 练习篇:从零开始了解网络空间安全(网导1)
  • 2025年粘度计厂家推荐排行榜,在线/旋转/振动/实验室粘度计,反应釜/管线在线粘度计公司推荐!
  • 20232306 2025-2026-1 《网络与系统攻防技术》实验二实验报告
  • JAVA基础的ATM机存款项目