Korrekter Weg, um den Start einer Aufgabe zu verzögern

Möchte ich so planen Sie einen task zu starten, in x-ms und in der Lage sein, um Sie abzubrechen, bevor es beginnt (oder erst am Anfang der Aufgabe).

Der erste Versuch wäre so etwas wie

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);

Aber ich fühle mich wie es sollte eine bessere Weise, als wäre dies ein thread, während in den Schlaf, während dessen könnte es abgebrochen werden.

Was sind meine anderen Optionen?

InformationsquelleAutor der Frage Bruno Lopes | 2011-02-14

Schreibe einen Kommentar