首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在.NET中内置后台调度系统?

在.NET中内置后台调度系统?
EN

Stack Overflow用户
提问于 2010-06-02 21:25:16
回答 6查看 913关注 0票数 3

我问,尽管我怀疑是否有这样的系统。

基本上,我需要安排任务在将来的某个时候执行(通常不超过几秒,也可能是几分钟后),并且有一些方法可以取消该请求,除非太迟。

即。如下所示的代码:

代码语言:javascript
复制
var x = Scheduler.Schedule(() => SomethingSomething(), TimeSpan.FromSeconds(5));
...
x.Dispose(); // cancels the request

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

我需要在这里的系统中从不同的实例中运行这样的未来操作,并且宁愿避免每个这样的类实例都有自己的线程并处理这个问题。

还要注意的是,我不希望这样(或类似的,例如通过任务):

代码语言:javascript
复制
new Thread(new ThreadStart(() =>
{
    Thread.Sleep(5000);
    SomethingSomething();
})).Start();

可能会有一些这样的任务需要执行,它们不需要以任何特定的顺序执行,除非接近它们的截止日期,而且它们是否具有实时性能概念也不是至关重要的。我只想避免为每个这样的操作创建单独的线程。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-06-02 21:36:40

由于您不想要外部引用,因此可能需要了解一下System.Threading.TimerSystem.Timers.Timer。请注意,这些类在技术上与WinForms Timer组件有很大不同。

票数 5
EN

Stack Overflow用户

发布于 2010-06-02 21:27:55

使用quartz.net (开源)。

票数 3
EN

Stack Overflow用户

发布于 2010-06-06 05:36:20

你可以按你要求的那样做吗? Well.....Actually you do you questing.....

代码语言:javascript
复制
  IDisposable kill = null;

  kill = Scheduler.TaskPool.Schedule(() => DoSomething(), dueTime);

  kill.Dispose();

使用微软伙伴的Rx Reactive Framework :)

Rx是非常神奇的。我几乎已经用它替换了事件。这只是普通的美味。

嗨,我是拉斯蒂,我是Rx addict...and,我喜欢。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2958088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档