我正在考虑在文件读/写库中使用FileHelpers。这个库将使用async-await和Tasks来高度并行和并发。
据我了解,FileHelperAsyncEngine在内部是异步的,但async-await没有* Async方法,因此每个文件都会占用调用线程,直到加载文件为止。
虽然显然可以例如Task.Run(…FileHelperAsyncEngine …)
,当尝试以这种方式读取数千个小文件(尽可能并行)时,我可能会遇到线程创建性能瓶颈,因为线程池每0.5只旋转一次额外的线程(即超过#cores)秒,这有很大的开销,并且(在我的上下文中)太慢了。
理想情况下,我可以
await ReadNextsAsync()
,或者至少使用APM模式:https://msdn.microsoft.com/en-us/library/dd997423%28v=vs.110%29.aspx
是否有计划为FileHelpers添加async-await支持?
您认为在FileHelpers中使用APM模式有什么好方法吗?
谢谢! 克里斯蒂安