mogę zabić .NET 4.0 Task object z jakiegoś sposobu jak mogliśmy ze starych i niebezpiecznych Thread.Abort() jak omówione w SO thread (pun przeznaczone i zapisać kociąt!)Zabicie zadania .NET 4?
Kenny
mogę zabić .NET 4.0 Task object z jakiegoś sposobu jak mogliśmy ze starych i niebezpiecznych Thread.Abort() jak omówione w SO thread (pun przeznaczone i zapisać kociąt!)Zabicie zadania .NET 4?
Kenny
Klasa Task
jest zaprojektowany i przeznaczony , aby użyć nowej wersji Cooperative Cancellation model .NET 4 zamiast polegać na destruktywnym stylu "anulowania" anulowania.
Nie ma bezpośredni sposób anulować Task
(jak Thread.Abort()
, choć to bardzo złedo wykorzystania w każdym przypadku), ale istnieje cały ramy w celu zapewnienia narzędzi do request that the Task cancel itself.
Tak, widziałem, że CancelationTokenSource i metoda współpracy, jak to zrobić, ale mam przypadek, w którym muszę przerwać zadanie (rozmawiając z sprzętowym interfejsem API innej firmy) i jestem skłonny przejść niestabilność, aby to zrobić . Dzięki jeszcze raz!. – kenny
@kenny Nie ma mechanizmu w 'Zadanie', aby na to pozwolić. –
Ok dzięki, będę musiał użyć przestarzałego obiektu Thread. – kenny
powielony artykuł: http://stackoverflow.com/questions/4359910/is-it-possible-to-abb-a-task-like-aborting-a-readread-thread-abort-method – Kai
Wiem, że to niebezpieczne , ale czy można to zrobić? Chyba mówisz "nie". – kenny
@kenny Nie bez dużej wiedzy o 'Zadaniu' - Jeśli wiedziałeś wcześniej, że użyty' TaskScheduler' używał dedykowanego wątku dla 'Task', możesz wywołać' Abort' w tym wątku. Biorąc to pod uwagę, byłoby BARDZO złym pomysłem zaprojektować system w ten sposób. –