我正在C#中创建
Windows应用程序,我想在多个文件中写入多个线程.我从不同的端口获取数据,并且每个端口都有一个文件.每个端口都可以创建线程并使用一次又一次地将数据写入相应的文件?
假设我从端口10000,10001,10002获取数据,并且有三个文件为10000.txt,10001.txt和10002.txt.我必须创建三个线程,分别为这三个文件写入数据,我想一次又一次地使用这些线程.可能吗?如果可能,你可以给出一小段代码?
假设我从端口10000,10001,10002获取数据,并且有三个文件为10000.txt,10001.txt和10002.txt.我必须创建三个线程,分别为这三个文件写入数据,我想一次又一次地使用这些线程.可能吗?如果可能,你可以给出一小段代码?
解决方法
正如评论中提到的,这是要求麻烦.
所以,你需要一个线程安全的作家类:
public class FileWriter { private ReaderWriterLockSlim lock_ = new ReaderWriterLockSlim(); public void WriteData(/*....whatever */) { lock_.EnterWriteLock(); try { // write your data here } finally { lock_.ExitWriteLock(); } } } // eo class FileWriter
这适合于被许多线程调用.但是,有一个警告.可能有锁争议.我使用了一个ReadWriterLockSlim类,因为你可能想要读取锁以及地狱,该类也允许您从读取状态升级.