如果我有Console.ReadLine(),Windows schduler将如何反应?在我的控制台应用程序中

joh*_* Gu 1 c# cmd console-application windows-server-2008-r2 taskscheduler

我在c#控制台应用程序中编写了以下内容。当前,当我在Visual Studio中运行此文件或手动运行.exe文件时,命令提示符将显示一条消息,并且用户需要单击任何键才能存在该窗口。

  Console.Write(syncResult + " Press any key to exsit..");
  Console.ReadLine();
Run Code Online (Sandbox Code Playgroud)

现在我想从Windows Task Scheduler调用此控制台应用程序,因此不确定是否这意味着命令提示符将保持活动状态?我的意思是,当Windows任务按预定义的时间间隔调用.exe时,.exe将继续运行。

谢谢

小智 5

我有几个这样的工具在生产服务器上运行,并且在所有这些情况下都按照人们已经建议的方式进行处理。我有一个命令行参数,如/ q(安静)或/ u(无人值守),在调用Readline之前已对其进行了检查:

if (!args.Any(a => a == "/q"))
  Console.ReadLine();
Run Code Online (Sandbox Code Playgroud)

否则,任务将无法完成执行,几天后,您会发现许多任务仍在TaskManager中运行。当然,在创建任务时,您必须记住要在配置中添加该参数。