0

我有一个长期存在的问题,TaskScheduler.TaskService.FindTask 方法有时会返回对任务的引用,即使该任务不存在。

请注意,具有给定名称的任务在某个时候已经存在,但此后已被删除(使用 TaskScheduler.TaskService.DeleteTask)。

有时注册表中仍然存在对旧任务的引用,但从注册表中删除它并不能解决它。不知何故 FindTask() 仍然认为它存在。

TaskService ts;
var try1 = ts.FindTask("dummy");  
var try2 = ts.FindTask("test1");

在此处输入图像描述

此时,上面的两个命令都将返回对任务的引用,即使它们中只有一个存在。

检查像try1.Enabled这样的属性会返回 true,但try1.State会给出错误:

值不在预期范围内

所以要解决这个问题,我可能会做一个 try-catch 来确定这是一个真实的还是虚假的任务。问题是,如果 TaskService 类认为它存在,我无法创建具有给定名称的新任务。

有合适的解决方案吗?

4

0 回答 0