我可以使用Win32.TaskScheduler来安排我的过程吗
本文关键字:我的 过程 可以使 Win32 TaskScheduler 我可以 | 更新日期: 2023-09-27 18:25:04
我想使用http://taskscheduler.codeplex.com/
我可以用它来安排外部动作,例如。
我可以用它来安排我的内部行动吗?或者我应该用其他东西来完成外部任务吗?
例如:
public static void cstask() {
using (TaskService ts = new TaskService()) {
const string taskName = "Test2";
System.Action test = new System.Action( () => {
;
}
);
Task t = ts.AddTask(taskName,
new TimeTrigger() { StartBoundary = DateTime.Now + TimeSpan.FromHours(1), Enabled = false },
//new ExecAction("notepad.exe", "c:''test.log", "C:''")
(Microsoft.Win32.TaskScheduler.Action)test
);
ts.RootFolder.DeleteTask(taskName);
}
}
->
Cannot convert type 'System.Action' to 'Microsoft.Win32.TaskScheduler.Action'
似乎是Reactive Extensions
的工作
using System.Reactive;
using System.Reactive.Linq;
和
IDisposable subscription =
Observable
.Interval(TimeSpan.FromHours(1))
.Take(1)
.Subscribe(i =>
{
Console.WriteLine("I'm doing something delayed by an hour");
});
处置订阅以在运行之前终止订阅。如果你想要任务返回一些要处理的东西,然后有点不同。
double SomeFunction(){
...
}
和
public async double DoItInOneHour(){
return await Observable
.Interval(TimeSpan.FromHours(1))
.Take(1)
.Select( i=> SomeFunction());
}
将异步等待超时,评估SomeFunction,然后返回结果为值。
您不能使用windows任务调度程序直接调用System.Action。
但是,您可以创建一个执行应用程序的计划任务。调用内部操作所需的信息可以通过命令行参数传递。