【发布时间】:2016-12-01 21:47:10
【问题描述】:
我对 C# 比较陌生,并试图确定文件操作方面的最佳实践。
我的应用程序正在使用Parallel.ForEach 来解析几个大文件。在该方法中,我使用StreamWriter 写入单个文件,但在该过程中必须锁定对象。我预计这种方法会放慢速度,并且知道我必须为文件 IO 设置一个单独的线程。
这让我想到了我的问题。 C# 是否已经为非阻塞、线程安全的文件 IO 提供了命名空间?
谢谢!
【问题讨论】:
-
如果延迟写入并且超时将数据写入文件而不是进行并行写入,您可能会获得速度提升。
-
据我所知,由于 IO 的性质,不可能对同一个流资源进行真正的并行操作。
-
@Abion47 问题不是要求那个。事实上,他明确表示他正在明确序列化它。
-
@Servy 他也在询问是否有非阻塞、线程安全的方法来执行 IO。我认为这意味着他正在寻找一种方法,使他能够安全地将他的写入多线程到
StreamWriter。也许我的假设是错误的?
标签: c# multithreading file-io parallel-processing