Task.Factory.StartNew()和Task.Run()有什么区别

yaojunyi3725 2014-12-04 11:52:21
加精
网上搜一答案说"Task.Factory.StartNew和Task.Run区别之一就有Task.Run会自动执行Unwrap操作,但是Task.Factory.StartNew不会,Task.Run就是Task.Factory.StartNew的更人性化封装,而Task.Factory.StartNew则是原始的执行。" 网址是http://www.mgenware.com/blog/?p=338
但是我写代码发现二者的返回值类型是一样的 我怀疑是framework版本不同造成的差异
两个方法还是有些不同之处的 Factory作为工厂方法重载更多达到16个,而Task.Run只有8个,Factory.StartNew的有些重载有 TaskCreationOptions creationOptions参数或配合Func<object, TResult> function使用的object state参数
...全文
28471 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
yaojunyi3725 2014-12-07
  • 打赏
  • 举报
回复
仅从源码图片上看 run方法是对factory的一个四参数重载方法的返回值做了unwrap的
vbfool 2014-12-04
  • 打赏
  • 举报
回复
引用 2 楼 yaojunyi3725 的回复:
还有就是 tsk.Wait()和await tsk的区别(tsk是一个Task类的实例) 前者会阻塞UI线程, 而后者不会 初学任务式异步编程,呵呵
后者会把await之后的内容包装起来放到新的线程环境去执行,前者就是简单的卡住当前线程等待Task完成而已。
yaojunyi3725 2014-12-04
  • 打赏
  • 举报
回复
还有就是 tsk.Wait()和await tsk的区别(tsk是一个Task类的实例) 前者会阻塞UI线程, 而后者不会 初学任务式异步编程,呵呵
cllonl99 2014-12-04
  • 打赏
  • 举报
回复
后者会把await之后的内容包装起来放到新的线程环境去执行
qq_24212633 2014-12-04
  • 打赏
  • 举报
回复
后者会把await之后的内容包装起来放到新的线程环境去执行
beyondma 2014-12-04
  • 打赏
  • 举报
回复
这个开源之后就能看到了吧。
#blackheart 2014-12-04
  • 打赏
  • 举报
回复
内容概要:本文提出一种基于鱼鹰优化算法(OOA)优化的CNN-BiGUR-Attention混合模型,用于提升短期风电功率预测的精度与稳定性,采用Matlab实现代码仿真。该模型融合卷积神经网络(CNN)提取输入数据的局部空间特征,利用双向门控循环单元(BiGUR)捕捉风速、功率等时间序列的前后向动态依赖关系,并引入注意力机制自适应强化关键时间步的特征权重,从而增强模型对非平稳风电数据的表征能力;进一步,采用OOA算法对模型超参数进行全局寻优,有效提升模型收敛速度与泛化性能。研究基于实际风电场历史数据开展实验验证,结果表明,该方法相较传统模型在预测精度、鲁棒性和误差抑制方面表现更优,适用于高比例可再生能源接入背景下的电力系统调度需求。; 适合人群:从事新能源发电预测、电力系统优化调度、智能算法与深度学习融合应用等方向的科研人员及工程技术人员,尤其适合具备Matlab编程能力、熟悉时间序列建模与深度学习框架的研究者。; 使用场景及目标:①实现风电场短期功率高精度预测,支撑电网安全稳定调度与能量管理;②为深度学习模型结构设计与智能优化算法联合调参提供实践范例;③推动人工智能技术在可再生能源预测、智能电网运行等领域的落地应用。; 阅读建议:建议结合提供的Matlab代码深入理解CNN-BiGUR-Attention网络架构搭建、注意力机制实现方式及OOA优化流程,重点关注数据预处理、模型训练与参数调优细节,可通过替换不同风电数据集进行对比实验,进一步掌握模型迁移能力与适应性。

7,655

社区成员

发帖
与我相关
我的任务
社区描述
Windows Phone是微软发布的一款手机操作系统,它将微软旗下的Xbox LIVE游戏、Zune音乐与独特的视频体验整合至手机中。
社区管理员
  • Windows客户端开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧