使用单个exe执行不同的计划任务

时间:2015-05-25 06:03:03

标签: c# windows-services scheduled-tasks

在当前项目中,我正在使用任务调度程序来运行控制台应用程序来执行一些日常操作。现在,我想将相同的控制台应用程序用于需要每15分钟运行一次的另一个操作。为了识别同一控制台应用程序中的操作,我打算使用不同的参数。 e.g。

MyProject.Services.exe "RunDailyTask"

MyProject.Services.exe "RunEvery15MinutesTask"

因此,两个调度程序将调用相同的exe但使用不同的参数来执行不同的操作。

我的问题是,这是个好主意吗?一个操作可以影响另一个操作,因为它们共享相同的exe吗?

2 个答案:

答案 0 :(得分:2)

  

我的问题是,这是个好主意吗?一个操作可以影响   其他两个共享相同的exe?

不,Console exe在单独的进程中执行。当你运行同一个exe应用程序的多个实例时,每个实例都会在进程中执行。

如果实例失败,则仅影响该过程;其他流程中的应用程序继续执行。当然,因为一个进程中的内存地址在另一个进程中没有意义

You could simple test this by manually running two instances of your console application(by hard coding RunDailyTask and RunEvery15MinutesTask in each exe)

除了将字符串参数传递给控制台之外,最好在可执行文件中使用数字标志(1,2),如果需要,可以使用带有有意义值的枚举。

enum OperationType
{
  RunDailyTask = 1,
  RunEvery15MinutesTask = 2
}

答案 1 :(得分:1)

是肯定的。好主意。 没有。一个操作可以影响另一个操作,因为它们共享相同的exe吗?

windows通过不同的实例(线程)运行您的应用程序。当然,在启动RunDailyTask之前,必须确保RunEvery15MinutesTask必须完成其工作。