2015-01-11 8 views

risposta

15

È 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.

+0

Grazie! Sai quando verranno eseguite esattamente le continuazioni? Quando viene chiamato 'SetResult'? Qualche tempo dopo? C'è un modo per controllare questo? –

+0

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

+0

Le continuazioni verranno eseguite al termine dell'attività (come determinato dal filtro dello stato delle attività sul seguito, se appropriato). – Ani

Problemi correlati