Dan*_*any 13 c# file-io multithreading
我在C#中创建Windows应用程序,我想用多个线程编写多个文件.我从不同的端口获取数据,并且每个端口都有一个文件.是否有可能为每个端口创建线程并一次又一次地使用相同的线程将数据写入相应的文件?假设我从端口10000,10001,10002获取数据,并且有三个文件,如10000.txt,10001.txt和10002.txt.我必须分别创建三个线程来将数据写入这三个文件,我想一次又一次地使用这些线程.可能吗?如果可能,请您提供一小段代码吗?
Moo*_*ice 10
正如评论中所提到的,这是在惹麻烦.
所以,你需要一个线程安全的编写器类:
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
Run Code Online (Sandbox Code Playgroud)
这适合被许多线程调用.但是,有一个警告.可能存在锁定争用.我使用了一个ReadWriterLockSlim类,因为你可能也想做读锁和地狱,那个类也允许你从读状态升级.
| 归档时间: |
|
| 查看次数: |
19613 次 |
| 最近记录: |