有一个非常古老的Winform应用程序(在控制器的事件处理程序中编写了很多域逻辑),我也需要在批处理文件中运行它。所以我添加了一个参数-gui
,如果没有gui运行,将所有消息弹出窗口包装到日志中,并将启动过程更改为
if (gui) // Interactive mode
{
Application.Run(new MyApp(....));
}
else // Running in batch mode
{
var f = new MyApp(.....);
f.SomeButton_Click(f, ....);
f.AnotherButton_Click(f, ....);
....
f.btnOK_Click(f, ...);
// f.Close(); // Should it be called?
}
在退出之前是否需要调用f.Close();
或任何其他方法?我发现系统中有一些进程挂起,从另一个C#应用程序启动后无法杀死。
答案 0 :(得分:1)
除非f.Show()
被调用(假设它继承自System.Windows.Form
),否则我认为您不需要致电using(var f = new MyApp(.....))
{
f.SomeButton_Click(f, ....);
f.AnotherButton_Click(f, ....);
....
f.btnOK_Click(f, ...);
}
。但是,您可以这样做:
as.POSIXct(df$date, format='%B %d %Y')