当前位置: 首页 > 知识库问答 >
问题:

StreamWriter何时处置?

曹波鸿
2023-03-14

我很困惑这是怎么发生的,我想知道这是否意味着我不需要担心清理StreamWriter。下面是我的课:

public class TextFileLogger : AbstractTextLogger
{
    private const string LogPath = @"C:\";
    private const string LogFileName = "MyFile.log.txt";
    private readonly StreamWriter _writer;

    public TextFileLogger()
    {
        _writer = new StreamWriter($"{LogPath}{LogFileName}", true);
        _writer.AutoFlush = true;
    }

    ~TextFileLogger()
    {
        _writer.Dispose();
    }

    protected override void WriteLine(string line)
    {
        _writer.WriteLine(line);
    }
}

共有1个答案

太叔航
2023-03-14

在终结器中只允许访问根对象(如静态变量)或从CriticalFinalizerObject派生的对象。

问题是finalizer不是确定性的,它可以按它感觉的任何顺序运行。你遇到的问题是因为课文编写器在你上课之前就已经定稿了。

您需要或者只是“希望最好”,让编写器的终结器来完成工作,或者需要重构代码,使类本身是可部署的,并调用流编写器的dispose方法

 类似资料:
  • 本文向大家介绍C#使用Streamwriter打开文件的方法,包括了C#使用Streamwriter打开文件的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#使用Streamwriter打开文件的方法。分享给大家供大家参考。具体如下: 希望本文所述对大家的C#程序设计有所帮助。

  • 本文向大家介绍C#使用StreamWriter写入文件的方法,包括了C#使用StreamWriter写入文件的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#使用StreamWriter写入文件的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的C#程序设计有所帮助。

  • 问题内容: 从MDN for NodeList: 在某些情况下,NodeList是一个实时集合,这意味着DOM中的更改会反映在集合中。例如,Node.childNodes处于活动状态: 在其他情况下,NodeList是静态集合,这意味着DOM中的任何后续更改都不会影响集合的内容。document.querySelectorAll返回一个静态NodeList。 所以....有点烦!是否有任何关于哪些

  • 问题内容: 因此,我(远程)在Eclipse中调试Java / jboss应用程序,一步一步地进行。一方面,通过方法调用创建对象数组(是一个非常简单的独立类,包含一些属性和方法),即: …虽然我实际上执行代码时,数组中确实填充了对象,但是在单步执行代码并进行调试时,我会感到有些奇怪。在紧接上述分配之后的行的断点处,如果我尝试查看数组,而不是值,则会得到以下信息: …谁知道这是怎么回事? 问题答案:

  • 我想知道什么时候应该使用

  • 在我的网站中,用户A创建了一个从上午9:00开始的事件。我将该时间转换为GMT,这样,如果用户B在两小时前的不同时区看到该事件,它可以转换为用户B的时区,并显示该事件在11:00AM开始。 我唯一的想法是,当我得到如下所示的时区偏移量时,我是否应该总是将日期设置为一月,以便无论实际月份如何,我总是得到相同的时区偏移量?或者有没有更好的方法来处理这件事?