我有一个程序,有两种模式:GUI和Just Run。GUI加载WPF表单并让我调整设置,而Just Run加载这些设置并只是...运行。
它是一个定制化的工具,用于批量移动文件。
问题是:“日志”没有完成。似乎在程序关闭时仍在写入,从而截断了日志的结尾。
主要应用程序代码:
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
if (!e.Args.Contains("-gui"))
{
Process.SettingsPopulate();
Process.WriteLogHead();
Process.MoveFiles();
Process.WriteLogEnd();
}
else
{
new MainWindow().ShowDialog();
}
this.Shutdown();
}
}
这很简单。如果命令行中有-gui,它将加载WPF...否则只需运行。
public static void WriteLogEnd()
{
foreach (var log in from i in Items
where i.Used == false
let build = new StringBuilder()
select build.AppendFormat("{0, -12} > {1} > Not Found", _time, i.FileName))
{
Logs(log);
}
Logs("");
Logs("Fin.");
}
日志是一种简单的“写入控制台,写入文件”的方法。我遍历处理过的文件列表,找到未使用的项目...即“未找到”。在结束列表之前,并写入Fin,它就关闭了。
这让我困惑。我该如何防止文件在WriteLogEnd完成之前关闭(因为根据我所知,在此之前它不应该能够结束)。