c# – Fibres vs async等待

c# – Fibres vs async等待,第1张

概述我加入了一个C#项目,其中开发人员大量使用 Fibers.在这个项目之前,我甚至没有听说过他们,以前使用异步等待和Threads和BackgroundWorkers进行多任务 *** 作.今天我问他们为什么使用光纤,主要的开发者说他更容易调试.意思是他知道一个特定功能来自哪个线程,甚至可以访问堆栈中更高的变量. 我想知道使用Fibres和使用新的异步等待和使用Threads有什么优点和缺点. PS:我们正 我加入了一个C#项目,其中开发人员大量使用 Fibers.在这个项目之前,我甚至没有听说过他们,以前使用异步等待和Threads和BackgrounDWorkers进行多任务 *** 作.今天我问他们为什么使用光纤,主要的开发者说他更容易调试.意思是他知道一个特定功能来自哪个线程,甚至可以访问堆栈中更高的变量.

我想知道使用Fibres和使用新的异步等待和使用Threads有什么优点和缺点.

PS:我们正在使用.Net 4.5

解决方法

I was asking them why they used Fibers and the main developer saID
that it’s easIEr for him to deBUG. Meaning he kNows which thread a
particular function has come from and even Could access the variables
higher in the stack.

这听起来很特别.当使用任务并行库与默认ThreadPoolTask​​Scheduler以外的自定义调度程序时,您可以自己决定如何计划任务(并不一定在新线程上).异步等待另一方面为您提供了一种方便的异步IO方式. VS使您能够使用同步执行的异步代码调试功能.

为了使用光纤,人们必须调用非管理的API,因为.NET不会在BCL中提供任何托管包装器. Even the docs of fibers clearly say there isn’t a clear advantage to using them:

In general,fibers do not provIDe advantages over a well-designed
multithreaded application. However,using fibers can make it easIEr to
port applications that were designed to schedule their own threads.

I was wondering what are the advantages and disadvantages of using
Fibers vs using the new async await and using Threads.

使用async-await可以让您在执行IO绑定的异步工作的同时感受到正在执行同步的好处.任务并行库提供了一种简单的方法来调度专用线程的工作,无论是线程池线程还是新线程,同时允许您挂接安排这些工作单元的机制.所有的框架都提供了,我真的看不到使用纤维的优势.

我想你应该告诉你的主要开发人员分别使用Task Parallel library和async-await对多线程和异步IO工作进行一些阅读.我认为这样会使你们的生活更轻松.

总结

以上是内存溢出为你收集整理的c# – Fibres vs async等待全部内容,希望文章能够帮你解决c# – Fibres vs async等待所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1260564.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存