C# - 为初学者提供帮助

0 c# multithreading

我想运行三个线程(i)一个应该将字符串附加到文件中.(ii)另一个线程应该从写入的流中删除特殊字符.(iii)第三个线程应该按升序对单词进行排序.我怎么做它以线程安全(同步)的方式?

我的意思是

线程1

sample.txt

Apple
Ma#22ngo
G@ra&&pes
Run Code Online (Sandbox Code Playgroud)

线程2(删除特殊字符sample.txt后)

Apple
Mango
Grapes
Run Code Online (Sandbox Code Playgroud)

线程3(sample.txt)

Apple
Grapes
Mango
Run Code Online (Sandbox Code Playgroud)

Mar*_*eck 5

为什么要使用多个线程执行此操作?也许你的例子过于简单,但如果你可以避免线程,那么这样做 - 看起来这个问题并不需要它.

你有很多文件,或者一个非常大的文件,还是别的东西?为什么你不能一个接一个地执行这三个动作?

UPDATE

我觉得我至少应该尝试帮助你解决你所面临的根本问题.我认为您需要将您正在考虑的任务视为管道.你从字符串开始,删除特殊字符(清理),然后将它们写入文件.当你最终编写了所有字符串时,你需要对它们进行排序.

直到排序阶段的所有事情都可以并且应该由单个线程完成.读取字符串,清理它,将其写入文件,移动到下一个字符串.在将所有字符串干净地写入文件之前,排序的最后任务不容易发生.

如果你有很多文件要编写和排序,那么每个文件都可以由一个单独的线程处理,但我会避免在处理任何一个给定文件时涉及多个线程.