【发布时间】:2016-10-21 09:08:51
【问题描述】:
我想在得到它的值后将 IsStringBuilderWritten 设置为 false。但我想不通。
IsStringBuilderWritten 必须为 false 才能使用 StringBuilder,但我不知道如何设置它的值,因此我只能使用 StringBuilder 一次。我该如何解决这个问题?
class FileWhatcher : IDisposable
{
public event System.EventHandler StringBuilderWritten;
protected virtual void OnstringBuilderWritten()
{
StringBuilderWritten?.Invoke(this, EventArgs.Empty);
}
private bool _isStringBuilderWritten;
public bool IsStringBuilderWritten
{
get { return _isStringBuilderWritten; }
set { _isStringBuilderWritten = value;
if (IsStringBuilderWritten) { OnstringBuilderWritten(); }
}
}
}
我用它来:
public partial class Form1 : Form
{
private FileWhatcher fw = new FileWhatcher();
private List<StringBuilder> watchedInformation;
public Form1()
{
InitializeComponent();
watchedInformation = new List<StringBuilder>();
fw.Start("F:\\slayt");
fw.StringBuilderWritten += new System.EventHandler(delegate (object sender, EventArgs args)
{
HandleComeNewWatch();
});
}
private void HandleComeNewWatch()
{
if (fw.IsStringBuilderWritten)
{
watchedInformation.Add(fw.stringbuilder);
}
}
}
【问题讨论】: