【发布时间】:2011-09-16 19:08:26
【问题描述】:
我有一个跟踪日志文件的应用程序。每次日志文件更新(通常是一系列连续更新)时,内存都会使用失控的气球。
我已经找到了这个电话的问题:
if (File.Exists(Path + "\\logfile.txt"))
Data = File.ReadAllText(Path + "\\logfile.txt");
这是从此处的 LoadAllData 中调用的。
private void FileChangeNotificationHandler(object source, FileSystemEventArgs e)
{
this.Dispatcher.BeginInvoke
(new Action(delegate()
{
Logfile.GetPath();
Logfile.LoadAllData();
LogText.Clear();
LogText.Text = Logfile.Data;
if (CheckFollowTail.IsChecked == true) LogText.ScrollToEnd();
}));
}
有没有人知道为什么会发生这种情况?我认为它与委托或处理程序有关。
【问题讨论】:
-
那么,每次你的日志文件发生变化时,你会丢弃所有的内容并完全重新加载文件吗?
-
我排除了文本框分配的问题。
-
对,日志文件足够小。必要时我会提供更多情报。
标签: c# delegates garbage-collection