Я спрашиваю, хотя я сомневаюсь, что есть такая система.
По сути, мне нужно запланировать выполнение задач в какой-то момент в будущем (обычно не более чем через несколько секунд или, возможно, минут), и у меня есть возможность отменить этот запрос, если не слишком поздно.
Т.е.. код, который будет выглядеть так:
var x = Scheduler.Schedule(() => SomethingSomething(), TimeSpan.FromSeconds(5));
...
x.Dispose(); // cancels the request
Есть ли такая система в .NET? Есть ли в TPL что-нибудь, что может мне помочь?
Мне нужно запускать такие будущие действия из разных экземпляров системы здесь, и я бы предпочел, чтобы каждый такой экземпляр класса не имел своего собственного потока и не занимался этим.
Также обратите внимание, что я не хочу это (или подобное, например, через Задачи):
new Thread(new ThreadStart(() =>
{
Thread.Sleep(5000);
SomethingSomething();
})).Start();
Потенциально будет выполнено несколько таких задач, их не нужно выполнять в каком-то конкретном порядке, за исключением того, что они близки к крайнему сроку, и не важно, чтобы у них было что-то вроде концепции производительности в реальном времени. Я просто хочу избежать раскрутки отдельного потока для каждого такого действия.