【发布时间】:2010-06-02 13:25:16
【问题描述】:
尽管我怀疑是否有这样的系统,但我还是问了。
基本上,我需要安排任务在未来某个时间点执行(通常不超过几秒或几分钟后),并且有某种方式取消该请求,除非为时已晚。
即。看起来像这样的代码:
var x = Scheduler.Schedule(() => SomethingSomething(), TimeSpan.FromSeconds(5));
...
x.Dispose(); // cancels the request
.NET 中有这样的系统吗? TPL 中有什么可以帮助我的吗?
我需要在这里从系统中的各种实例运行这样的未来动作,并且宁愿避免每个这样的类实例都有自己的线程并处理它。
另请注意,我不想要这个(或类似的,例如通过任务):
new Thread(new ThreadStart(() =>
{
Thread.Sleep(5000);
SomethingSomething();
})).Start();
可能会有一些这样的任务要执行,它们不需要以任何特定的顺序执行,除非接近截止日期,而且它们具有像实时性能概念这样的东西并不重要。我只是想避免为每个此类操作创建一个单独的线程。
【问题讨论】:
标签: .net .net-4.0 multithreading scheduling task-parallel-library