加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如何用多线程写入单个文件?

发布时间:2020-12-15 06:17:31 所属栏目:百科 来源:网络整理
导读:我正在C#中创建 Windows应用程序,我想在多个文件中写入多个线程.我从不同的端口获取数据,并且每个端口都有一个文件.每个端口都可以创建线程并使用一次又一次地将数据写入相应的文件? 假设我从端口10000,10001,10002获取数据,并且有三个文件为10000.txt,1000
我正在C#中创建 Windows应用程序,我想在多个文件中写入多个线程.我从不同的端口获取数据,并且每个端口都有一个文件.每个端口都可以创建线程并使用一次又一次地将数据写入相应的文件?
假设我从端口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类,因为你可能想要读取锁以及地狱,该类也允许您从读取状态升级.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读