首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >StreamWriter不冲

StreamWriter不冲
EN

Stack Overflow用户
提问于 2019-04-06 14:22:57
回答 2查看 457关注 0票数 0

我想要写一个大约一千万行的文件。我使用的是StreamWriter和using语句,但是似乎StreamWriter没有刷新。这是我的代码:

代码语言:javascript
复制
public void ExportRecords(IEnumerable<Record> records, string path)
    {
        using(TextWriter writer = new StreamWriter(path))
        {
            writer.WriteLine("header");

            foreach(var record in records)
            {
                string line = "";
                //Fill line with record properties
                writer.WriteLine(line);
            }
        }
    }

在某一行,StreamWriter不添加任何行。那么问题在哪里呢?

编辑

如前所述,代码是运行异步的注释。

情况如下:

代码语言:javascript
复制
Task.Run(() =>
{
    if (!String.IsNullOrEmpty(folderPath))
    {
        var records = _generator.GenerateData();

        _dataService.ExportRecords(records, $"{folderPath}/RECORDS.csv");
        //Just a message box
        _reporter.ReportMessage($"Generation and exportation finished");
    }
    else
    {
        IsGenerating = false;
        _reporter.ReportMessage("No output file was created");
    }

});

因此,我确实设置了一个断点来检查该方法是否开始执行,它确实执行了。我只是表示代码没有卡在生成方法中。

EN

回答 2

Stack Overflow用户

发布于 2019-04-06 16:21:58

暂时将应用程序的类型更改为控制台应用程序(如果是Windows ),并在策略点添加一些Console.WriteLine,以便您对该过程的进度有一些反馈。更好的是,您可以使用像log4net塞里罗格这样的库向应用程序添加日志记录。它在应用程序的生产阶段也很有用,而不仅仅是在开发/调试阶段。

票数 1
EN

Stack Overflow用户

发布于 2019-04-06 14:26:54

如果您在操作中间需要Flush(),则必须在某个时候手动调用它,否则,只有在语句结束时,流才会被释放。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55550019

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档