C# 如何并行运行2个StreamWriter

C# 如何并行运行2个StreamWriter,c#,multithreading,async-await,task-parallel-library,streamwriter,C#,Multithreading,Async Await,Task Parallel Library,Streamwriter,最近我在做一个项目,同时写一个csv文件和一个XML文件。 它们包含相同的元数据信息,如何在C#中同时打开两个StreamWriters?问题太广泛,因此答案是一般性的。为了“同时编写csv文件和XML文件”,您必须使用任务并行库(TPL-推荐)或.NET中的其他技术实现某种多线程,并在两个不同的线程上运行上述过程(分块或非分块模式) 有关第三方物流实施的更多详细信息: 希望这能有所帮助。使用相同的元数据意味着什么?文件名,修改日期,…“同时”?一个和另一个有什么问题?@Octopoid:嗯,这

最近我在做一个项目,同时写一个csv文件和一个XML文件。
它们包含相同的元数据信息,如何在C#中同时打开两个
StreamWriter
s?

问题太广泛,因此答案是一般性的。为了“同时编写csv文件和XML文件”,您必须使用
任务并行库
TPL
-推荐)或.NET中的其他技术实现某种多线程,并在两个不同的线程上运行上述过程(分块或非分块模式)

有关第三方物流实施的更多详细信息:


希望这能有所帮助。

使用相同的元数据意味着什么?文件名,修改日期,…“同时”?一个和另一个有什么问题?@Octopoid:嗯,这可能很有用;例如,如果xml和csv存储相同的格式;计算元素需要很长的时间。我投票将这个问题作为主题外的问题来结束,因为这个问题的答案很琐碎,显示出对编程语言/平台的理解很少,因此不适合这么做。@PedroC88我认为多线程是答案,因为两个StreamWriter不能同时打开,它们拥有相同的线程这是我正在寻找的答案,谢谢,欢迎您。我很高兴它对你有用。请检查已接受的答案。祝你的项目好运。向你问好,绝对不正确。同一线程上可以存在两个
streamwriter
;您可以交替写入每个文件(这是您在线程模型中要做的全部工作)。为此实现TPL或线程是浪费时间,尤其是因为磁盘IO无论如何都将是瓶颈。@DanPuzey:我不同意那种“绝对不正确”的说法。如果仔细阅读包含非常重要的“同时”条件的确切问题,单线程将通过在两个流写入操作之间切换来提供“伪并行”执行,而在双核CPU和两个硬盘驱动器的可能情况下,TPL解决方案将提供真正的并行执行,具有一定的性能优势,加上非阻塞磁盘IO操作(即,一个无需等待另一个完成)。致以最诚挚的问候,您添加了许多原始问题中没有的额外细节:两个硬盘、两个内核等。实际的原始问题是“如何同时在C#中打开两个StreamWriter?”答案是:创建两个
StreamWriter
s!