Posso uccidere un .NET 4.0 Task object con un metodo come abbiamo potuto con i vecchi e pericolosi Thread.Abort() come discusso nella SO thread (gioco di parole e salvare i gattini!)Uccisione di un'attività .NET 4?
Kenny
Posso uccidere un .NET 4.0 Task object con un metodo come abbiamo potuto con i vecchi e pericolosi Thread.Abort() come discusso nella SO thread (gioco di parole e salvare i gattini!)Uccisione di un'attività .NET 4?
Kenny
La classe Task
è progettato e destinato , per utilizzare il nuovo Cooperative Cancellation model di .NET 4 invece di affidarsi a uno stile di annullamento "annullato" distruttivo.
Non v'è alcun modo diretto per annullare un Task
(come Thread.Abort()
, anche se questo è molto male da utilizzare in ogni caso), ma c'è un intero framework in atto per fornire l'attrezzatura per request that the Task cancel itself.
Sì, ho visto che CancelationTokenSource e il metodo cooperativo come dovrebbe essere fatto, ma ho un caso in cui ho bisogno di interrompere l'attività (parlando con l'API hardware di terze parti) e sono disposto a diventare instabile per farlo . Grazie ancora!. – kenny
@kenny Non c'è alcun meccanismo in 'Task' per consentire questo. –
Ok grazie, dovrò usare l'oggetto Thread deprecato. – kenny
elemento duplicato: http://stackoverflow.com/questions/4359910/is-it-possibile-to-aborta-a-task-like-aborting-a-thread-thread-abort-method – Kai
So che è pericoloso ma può essere fatto? Immagino tu stia dicendo di no. – kenny
@kenny Non senza molta conoscenza del 'Task' - Se sapessi, in anticipo, che il' TaskScheduler' utilizzato stava usando un thread dedicato per il 'Task', potresti chiamare' Abort' su quel thread. Detto questo, sarebbe una pessima idea progettare un sistema in questo modo. –