Exporter (0) Imprimer
Développer tout
Développer Réduire
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

Task.ContinueWith, méthode (Action<Task>, TaskContinuationOptions)

Crée une continuation qui s'exécute en fonction des TaskContinuationOptions spécifiées.

Espace de noms :  System.Threading.Tasks
Assembly :  mscorlib (dans mscorlib.dll)

public Task ContinueWith(
	Action<Task> continuationAction,
	TaskContinuationOptions continuationOptions
)

Paramètres

continuationAction
Type : System.Action<Task>
Action à exécuter selon le continuationOptionsspécifié. Lorsqu'elle sera exécutée, la tâche achevée sera passée au délégué en tant qu'argument.
continuationOptions
Type : System.Threading.Tasks.TaskContinuationOptions
Options applicables lorsque la continuation est planifiée et qui en régissent le comportement. Cela inclut des critères, tels que OnlyOnCanceled, ainsi que des options d'exécution, telles que ExecuteSynchronously.

Valeur de retour

Type : System.Threading.Tasks.Task
Nouvelle Task de continuation.

ExceptionCondition
ObjectDisposedException

Task a été supprimé.

ArgumentNullException

L'argument continuationAction a la valeur null.

ArgumentOutOfRangeException

L'argument continuationOptions spécifie une valeur non valide pour TaskContinuationOptions.

Le Task retourné ne sera pas planifié pour l'exécution tant que la tâche actuelle ne sera pas terminée. Si les critères de continuation spécifiés au moyen du paramètre continuationOptions ne sont pas respectés, la tâche de continuation sera annulée au lieu d'être planifiée.

L'exemple suivant montre l'utilisation de TaskContinuationOptions pour spécifier qu'une tâche de continuation doit s'exécuter de façon synchrone lorsque la tâche antécédente est terminée. (Si la tâche spécifiée est déjà terminée lorsque ContinueWith est appelée, la continuation synchrone s'appliquera au thème qui appelle ContinueWith.)

// C#

public class TaskCounter

{

private volatile int _count;

public void Track(Task t)

{

if (t == null) throw new ArgumentNullException("t");

Interlocked.Increment(ref _count);

t.ContinueWith(ct => Interlocked.Decrement(ref _count), TaskContinuationOptions.ExecuteSynchronously);

}

public int NumberOfActiveTasks { get { return _count; } }

}

' Visual Basic

Public Class TaskCounter

Private _count as Integer

Public Sub Track(ByVal t as Task)

If t is Nothing Then Throw New ArgumentNullException("t")

Interlocked.Increment(_count)

t.ContinueWith(Sub(ct)

Interlocked.Decrement(_count)

End Sub, TaskContinuationOptions.ExecuteSynchronously)

End Sub

Public ReadOnly Property NumberOfActiveTasks As Integer

Get

Return _count

End Get

End Property

End Class

.NET Framework

Pris en charge dans : 4.5.2, 4.5.1, 4.5, 4

.NET Framework Client Profile

Pris en charge dans : 4

Bibliothèque de classes portable

Pris en charge dans : Bibliothèque de classes portable

.NET pour les applications du Windows Store

Pris en charge dans : Windows 8

.NET pour les applications Windows Phone

Pris en charge dans : Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

Ajouts de la communauté

AJOUTER
Microsoft réalise une enquête en ligne pour recueillir votre opinion sur le site Web de MSDN. Si vous choisissez d’y participer, cette enquête en ligne vous sera présentée lorsque vous quitterez le site Web de MSDN.

Si vous souhaitez y participer,
Afficher:
© 2015 Microsoft