BFTask
była dla mnie dobra, ale mam jedną skargę: Nie widziałem jeszcze przykładu, jak powinieneś wykonać zadanie w postaci cancel
. Cała dokumentacja na ten temat znajduje się pod numerem their GitHub page z pojedynczą, niską sekcją, która zawiera wszystko, ale część, na której mi zależy: , jak anulować zadanie.Realizacja zadań, które mogą być anulowane w ramach Rygiel (BFTask)
// Somewhere else.
MYCancellationToken *cancellationToken = [[MYCancellationToken alloc] init];
[obj doSomethingComplicatedAsync:cancellationToken];
// When you get bored...
[cancellationToken cancel];
Ich fragment kodu następuje:
Uwaga: Odwołanie żeton realizacja powinna być bezpieczny wątku.
Zastanawiam się, co następuje:
- Czy istnieje dobry powód, że nie mogą one dostarczyły metody
cancel
na samym interfejsieBFTask
? Mają właściwość reprezentującą, czy zadanie zostało anulowane, ale nie ma możliwości anulowania go. - Czy istnieje uzasadniony powód, że nie będą one zawierać własności
cancellationToken(s)
na samejBFTask
? - Czy implementacja
cancel
jest silnie powiązana z samym zadaniem? Czy możliwe jest ogólne wdrożenie, jak w przypadkucancelAllOperations
zNSOperationQueue
?