我正在开发VS2015。我想触发20秒后运行我的应用程序。我该如何使用Microsoft.Win32.TaskScheduler.dll? 我的代码如下:
void Actions::ScheduleRunApp()
{
TaskService^ ts = gcnew TaskService();
TaskDefinition^ td = ts->NewTask();
td->RegistrationInfo->Description = "Run LocalLockApp";
//td->Triggers->Add(gcnew DailyTrigger(2)); i want to run the application after 20 seconds instead
td->Actions->Add(gcnew ExecAction("notepad.exe", "C:\\test.log", nullptr));
ts->RootFolder->RegisterTaskDefinition(L"Test",td);
ts->RootFolder->DeleteTask(L"Test",true);
}
答案 0 :(得分:0)
似乎您有两个应用程序,并且您试图让应用程序#1运行应用程序#2,可能在应用程序#2启动之前退出了应用程序#1。
乍一看,我想说使用Task Scheduler来解决这个问题是错误的。 Task Scheduler用于定期启动维护任务,例如每天凌晨4:00。您可以创建一个任务,该任务被触发只能运行一次,现在+ 20秒,但是可能有更好的方法可以执行此任务。
在这种情况下,我会做以下两件事之一:
如果您绝对必须使用Task Scheduler,那么我相信您希望使用TimeTrigger
而不是DailyTrigger
。您也可能不想在运行DeleteTask之前调用它:相反,请确保已设置属性,以便在不再计划运行该任务时自动删除该任务。