所以我的情况是,我在Windows任务计划程序上运行一个应用程序。 这个应用程序每天下午1点运行一次。 该应用程序做一些查询和传输数据到FTP站点。 所有这些工作很好,除了周末,当我不在这里的应用程序运行,GUI仍然显示供我审查。 这似乎使它停止在调度程序上运行,直到我closures了应用程序。 所以在星期六它会运行,应用程序将保持显示给我回顾当我回到星期一。 但在星期天当调度程序尝试再次运行时,它将失败,因为该应用程序尚未closures。
首先让我确认这是Task Scheduler应该如何工作的。 其次,我有什么替代scheme可以安排每天运行,并保持GUI显示,以便我可以查看。 该应用程序可以运行多次,因为每个会话不会干扰其他会话。 所以如果我休假一个星期,我会期待当我回来的7个应用程序的实例已经运行,正在等待我的评论。
谢谢AGP
最好的办法是消除UI并将消息记录到事件日志或日志文件中。 如果您愿意,UI可以作为独立的进程从CLI衍生出来,但是应该像其自己的非子进程一样进行。
或者,您可以直接运行批处理文件而不是流程。 在批处理文件中,调用“START path_to_exe”而不是EXE。 这将导致批处理文件立即“完成”,而exe将在其自己的进程中运行。 这不是一个好的长期解决方案,但会给你一个临时解决你的眼前的问题。
这是“计划任务”系统的默认行为,因为直到应用程序实际退出时,它才知道作业已完成。 因此,如果您的应用程序在24小时后仍然打开,那么下一次运行将被忽略,因为就调度程序而言,当前运行“仍在继续”。
就我个人而言,我将重新考察您处理工作流程的方式,因为您正在设定一个长期难以管理的情况。
我建议写入日志文件,而不是显示任何输出和/或错误的用户界面。 这样,应用程序可以编写,然后退出,您可以方便地查看日志。 这是自动化流程的一个非常常见的解决方案。