我有一个程序有两种模式: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.");
}
Logs 是一种简单的“写入控制台,写入文件”方法。我遍历我的已处理文件列表,查找未使用的项目......也就是“未找到”。在它结束列表并写入 Fin 之前,它会关闭。
有没有让我困惑。如何在 WriteLogEnd 完成之前阻止文件关闭(因为,afaik,无论如何它不应该能够在此之前结束)。