Dar*_*rko 4 c# multithreading task-parallel-library
我一直在阅读多线程,以获得更多的东西,而不是常规的"推送函数到线程池并等待它完成"的方法,这是非常基本的.
基本上,我想要更多地控制线程,传递Cancelation标记的能力,获取返回值等等.这一切看起来都可以使用Task.factory(任务计划程序),从我理解的运行在顶部线程池.
如果是这种情况,如果我限制一般线程池上的线程号,那将适用于我的任务调度程序的实现或?
我还读到使用你自己的线程池比线程池更好,我可以混合这两个并获得我想要的控制吗?
欢迎任何建议!感谢您抽出宝贵的时间来解释一下.
您可以创建一个限制并发的TaskScheduler.然后,可以使用此自定义计划程序创建自己的计划程序TaskFactory,并启动使用您希望的控件自定义的任务.
该并行扩展样本项目包括可以作为参考使用许多自定义任务调度.
我还读到使用你自己的线程池比线程池更好,我可以混合这两个并获得我想要的控制吗?
对于大多数一般用途,我实际上不同意这一点..NET ThreadPool非常高效,并且经过高度优化.它包含了一些用于自动缩放所用线程数的指标等.
话虽这么说,如果你愿意,你总是可以TaskScheduler使用专用线程或你自己的"线程池"实现.