2014-05-07 15 views
6

Biorąc pod uwagę Token Anulowania, chcę wywołać metodę "anuluj" na obiekcie, który reprezentuje operację asynchroniczną, gdy odwołanie Token jest anulowane. czy to możliwe?Jak uruchomić kod po anulowaniu Tonu Anulowania?

Tło: Jestem relacje z API, który reprezentuje op asynchronicznej w następujący sposób (bardziej lub mniej):

class AsyncOp 
{ 
    void Start(Action callback);//returns 'immediately', while beginning an async op. Callback is called when the operation completes. 
    void Cancel();//aborts async operation and calls callback 
} 

mogę zawinąć to w metodzie Task DoAsyncOp() dość łatwo, ale chcę, aby wspierać anulowanie, np. Task DoAsyncOp(CancellationToken cancellationToken). W moim przypadku, gdy AnulowanieToken zostanie anulowane, wywołaj Anuluj w obiekcie AsyncOp.

Odpowiedz

10

Można zarejestrować Action się powoływać, gdy znacznik jest anulowane:

token.Register(() => { /*...*/ }); 
+1

Brilliant. Nie mogę uwierzyć, że nie zauważyłem tej metody w Kodzie Anulowania. – mackenir

+2

Pracowałem kilka tygodni z moim tokenem, dopóki go nie znalazłem ;-). Jeśli szukasz tylko wydarzenia, które nie widzisz metody "Zarejestruj się" ... – ChrFin

Powiązane problemy