内置.NET的后台调度系统?

ang*_*son 3 .net multithreading scheduling .net-4.0 task-parallel-library

我问我虽然怀疑有这样的系统.

基本上我需要安排任务在将来的某个时刻执行(通常不会超过几秒或从现在开始几分钟),并且有一些方法可以取消该请求,除非为时已晚.

IE浏览器.代码看起来像这样:

var x = Scheduler.Schedule(() => SomethingSomething(), TimeSpan.FromSeconds(5));
...
x.Dispose(); // cancels the request
Run Code Online (Sandbox Code Playgroud)

.NET中有这样的系统吗?TPL中有什么可以帮助我吗?

我需要在这里的系统中的各种实例中运行这样的future-actions,而宁愿避免每个这样的类实例拥有自己的线程并处理它.

另请注意,我不想要这个(或类似的,例如通过任务):

new Thread(new ThreadStart(() =>
{
    Thread.Sleep(5000);
    SomethingSomething();
})).Start();
Run Code Online (Sandbox Code Playgroud)

可能会执行一些此类任务,除了接近截止日期之外,它们不需要以任何特定顺序执行,并且它们具有类似实时性能概念的任何内容并不重要.我只是想避免为每个这样的动作单独创建一个线程.

Luc*_*ero 5

由于您不想拥有外部引用,因此您可能需要查看System.Threading.TimerSystem.Timers.Timer.请注意,这些类在技术上与WinForms Timer组件非常不同.