189 8069 5689

.NET4.6中任务并行库的特性是什么呢

.NET 4.6中任务并行库的特性是什么呢,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

创新互联网站建设提供从项目策划、软件开发,软件安全维护、网站优化(SEO)、网站分析、效果评估等整套的建站服务,主营业务为成都网站设计、做网站成都app开发以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。创新互联深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

在即将发布的.NET 4.6中,.NET中的任务并行库将会进行某些调整。其中会包括一些新的帮助方法以减少代码量,可能还会有性能方面的优化。除此之外,TPL将会通过使用一个新的解决方案对SetResult方法中某个复杂的问题进行处理。

可以将Task.FromResult视为一个典型样板,这一函数用于创建一个已经完成的Task对象,而无需首先创建一个TaskCompletionSource对象。开发者无法模拟这一效果,因此这需要访问Task类型的内部实现,如果你希望在异常处理时达到同样的效果,以上缺陷就将会成为一个阻碍。

.NET 4.6通过Task.FromException方法解决了这一问题。与FromResult类似,它能够绕过TaskCompletionSource这一机制的使用,并避免了随之而来的各种消耗。

与之相关的一个特性是Task.CompletedTask属性,该属性会返回一个完成的Task对象,而在目前的版本中只能通过Task.FromResult(null)实现。严格来说,这一特性并非十分必要,但它确实能够让开发者的意图变得更加清晰一些了。

与最后一个重要的特性相比,以上所介绍的这些新特性的效果可谓微不足道。TaskCompletionSource.SetResult方法有一个已知的行为,即如果该方法的后续方法会挂起对应的Task对象的话,那么这些后续方法有可能会以同步方式进行运行。Stephen Toub为读者解释了为什么这一行为可能会出现问题

我曾说过对TaskCompletionSource调用{Try}Set*等方法可能会产生的一种结果,即该TaskCompletionSource对象所对应的Task对象的任何同步后续方法会以同步方式运行,成为整个方法调用的一部分。如果我们在持有锁的同时调用了SetResult方法,那么该Task对象的同步后续方法会在持有锁的情况下运行,这可能会导致真正的问题。因此,在持有锁的情况下,我们需要将TaskCompletionSource设为completed,但我们实际上并没有完成它,而是将完成动作延迟,直至锁被释放之后。

为了避免这一情况的产生,开发者可以在创建TaskCompletionSource时,使用RunContinuationsAsynchronously这一新的标记:

tcs = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously)

关于.NET 4.6中任务并行库的特性是什么呢问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联行业资讯频道了解更多相关知识。


标题名称:.NET4.6中任务并行库的特性是什么呢
本文地址:http://cdxtjz.cn/article/jpodii.html

联系我们

您好HELLO!
感谢您来到成都网站建设公司,若您有合作意向,请您为我们留言或使用以下方式联系我们, 我们将尽快给你回复,并为您提供真诚的设计服务,谢谢。
  • 电话:028- 86922220 18980695689
  • 商务合作邮箱:631063699@qq.com
  • 合作QQ: 532337155
  • 成都网站设计地址:成都市青羊区锣锅巷31号五金站写字楼6楼

小谭建站工作室

成都小谭网站建设公司拥有多年以上互联网从业经验的团队,始终保持务实的风格,以"帮助客户成功"为已任,专注于提供对客户有价值的服务。 我们已为众企业及上市公司提供专业的网站建设服务。我们不只是一家网站建设的网络公司;我们对营销、技术、管理都有自己独特见解,小谭建站采取“创意+综合+营销”一体化的方式为您提供更专业的服务!

小谭观点

相对传统的成都网站建设公司而言,小谭是互联网中的网站品牌策划,我们精于企业品牌与互联网相结合的整体战略服务。
我们始终认为,网站必须注入企业基因,真正使网站成为企业vi的一部分,让整个网站品牌策划体系变的深入而持久。