Nel test di un'unità di un componente ho bisogno di verificare come un componente reagisce a Task in corso in vari momenti.Come creare un'attività <> Posso completare manualmente
Come posso creare un Task<>
che posso risolvere a piacere?
Nel test di un'unità di un componente ho bisogno di verificare come un componente reagisce a Task in corso in vari momenti.Come creare un'attività <> Posso completare manualmente
Come posso creare un Task<>
che posso risolvere a piacere?
È possibile utilizzare un TaskCompletionSource
per creare un'attività completamente "manuale".
Rappresenta il lato produttore di un'attività non associato a un delegato, fornendo accesso al lato utente tramite la proprietà Attività.
mano fuori Task
proprietà della sorgente del completamento per il consumatore, e chiamare SetResult
su di esso (a volontà) per completare l'operazione. Si noti che anche SetCanceled
e SetException
rappresentano rispettivamente annullamenti e guasti.
Grazie! Sai quando verranno eseguite esattamente le continuazioni? Quando viene chiamato 'SetResult'? Qualche tempo dopo? C'è un modo per controllare questo? –
Non è specifico per i thread: i metodi 'Set ***' possono essere richiamati su qualsiasi thread e l'oggetto stesso è thread-safe. Fornisce inoltre la famiglia di metodi 'TrySet ***' per gestire le gare. – Ani
Le continuazioni verranno eseguite al termine dell'attività (come determinato dal filtro dello stato delle attività sul seguito, se appropriato). – Ani