Я хочу запланировать запуск задачи в x ms и ее отменить до ее запуска (или только в начале задания).
Первая попытка будет похожа на
var _cancelationTokenSource = new CancellationTokenSource();
var token = _cancelationTokenSource.Token;
Task.Factory.StartNew(() =>
{
token.ThrowIfCancellationRequested();
Thread.Sleep(100);
token.ThrowIfCancellationRequested();
}).ContinueWith(t =>
{
token.ThrowIfCancellationRequested();
DoWork();
token.ThrowIfCancellationRequested();
}, token);
Но я чувствую, что должен быть лучший способ, так как это будет использовать поток во время сна, во время которого его можно было бы отменить.
Каковы мои другие варианты?