Exporter (0) Imprimer
Développer tout
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, classe

Représente une opération asynchrone.

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

[HostProtectionAttribute(SecurityAction.LinkDemand, Synchronization = true, 
	ExternalThreading = true)]
public class Task : IAsyncResult, IDisposable

Le type Task expose les membres suivants.

  NomDescription
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreTask(Action)Initialise une nouvelle Task avec l'action spécifiée.
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreTask(Action, CancellationToken)Initialise une nouvelle Task avec l'action spécifiée et un CancellationToken.
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreTask(Action, TaskCreationOptions)Initialise une nouvelle Task avec l'action et les options de création spécifiées.
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreTask(Action<Object>, Object)Initialise une nouvelle Task avec l'action et l'état spécifiés.
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreTask(Action, CancellationToken, TaskCreationOptions)Initialise une nouvelle Task avec l'action et les options de création spécifiées.
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreTask(Action<Object>, Object, CancellationToken)Initialise une nouvelle Task avec l'action, l'état et les options spécifiés.
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreTask(Action<Object>, Object, TaskCreationOptions)Initialise une nouvelle Task avec l'action, l'état et les options spécifiés.
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreTask(Action<Object>, Object, CancellationToken, TaskCreationOptions)Initialise une nouvelle Task avec l'action, l'état et les options spécifiés.
Début

  NomDescription
Propriété publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreAsyncStateObtient l'objet d'état fourni lorsque la Task a été créée, ou null si aucun n'a été fourni.
Propriété publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreCreationOptionsObtient les TaskCreationOptions utilisées pour créer cette tâche.
Propriété publiqueMembre statiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreCurrentIdRetourne l'ID unique de la Task en cours d'exécution.
Propriété publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreExceptionObtient le AggregateException qui a provoqué l'arrêt prématuré de Task. Si la Task s'est terminée avec succès ou n'a pas encore levé d'exception, la valeur null est retournée.
Propriété publiqueMembre statiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreFactoryFournit l'accès aux méthodes de fabrique pour la création d'instances de Task et de Task<TResult>.
Propriété publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreIdObtient un ID unique pour cette instance de Task.
Propriété publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreIsCanceledDétermine si l'exécution de cette instance de Task s'est terminée suite à son annulation.
Propriété publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreIsCompletedDétermine si cette Task est terminée.
Propriété publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreIsFaultedDétermine si la Task s'est terminée suite à une exception non gérée.
Propriété publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreStatusObtient le TaskStatus de cette tâche.
Début

  NomDescription
Méthode publiquePris en charge dans .NET pour les applications du Windows StoreConfigureAwaitConfigure un élément awaiter utilisé pour attendre cette Task.
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreContinueWith(Action<Task>)Crée une continuation qui s'exécute de façon asynchrone lorsque la Task cible se termine.
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreContinueWith(Action<Task>, CancellationToken)Crée une continuation qui s'exécute de façon asynchrone lorsque la Task cible se termine.
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreContinueWith(Action<Task>, TaskContinuationOptions)Crée une continuation qui s'exécute en fonction des TaskContinuationOptions spécifiées.
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreContinueWith(Action<Task>, TaskScheduler)Crée une continuation qui s'exécute de façon asynchrone lorsque la Task cible se termine.
Méthode publiquePris en charge dans .NET pour les applications du Windows StoreContinueWith(Action<Task, Object>, Object)Crée une continuation qui s'exécute lorsque la Task cible se termine.
Méthode publiquePris en charge dans .NET pour les applications du Windows StoreContinueWith(Action<Task, Object>, Object, CancellationToken)Crée une continuation qui s'exécute lorsque la Task cible se termine.
Méthode publiquePris en charge dans .NET pour les applications du Windows StoreContinueWith(Action<Task, Object>, Object, TaskContinuationOptions)Crée une continuation qui s'exécute lorsque la Task cible se termine.
Méthode publiquePris en charge dans .NET pour les applications du Windows StoreContinueWith(Action<Task, Object>, Object, TaskScheduler)Crée une continuation qui s'exécute lorsque la Task cible se termine.
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreContinueWith(Action<Task>, CancellationToken, TaskContinuationOptions, TaskScheduler)Crée une continuation qui s'exécute en fonction des TaskContinuationOptions spécifiées.
Méthode publiquePris en charge dans .NET pour les applications du Windows StoreContinueWith(Action<Task, Object>, Object, CancellationToken, TaskContinuationOptions, TaskScheduler)Crée une continuation qui s'exécute lorsque la Task cible se termine.
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreContinueWith<TResult>(Func<Task, TResult>)Crée une continuation qui s'exécute de façon asynchrone lorsque la Task cible se termine.
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreContinueWith<TResult>(Func<Task, TResult>, CancellationToken)Crée une continuation qui s'exécute de façon asynchrone lorsque la Task cible se termine.
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreContinueWith<TResult>(Func<Task, TResult>, TaskContinuationOptions)Crée une continuation qui s'exécute en fonction de la condition spécifiée dans les continuationOptions.
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreContinueWith<TResult>(Func<Task, TResult>, TaskScheduler)Crée une continuation qui s'exécute de façon asynchrone lorsque la Task cible se termine.
Méthode publiquePris en charge dans .NET pour les applications du Windows StoreContinueWith<TResult>(Func<Task, Object, TResult>, Object)Crée une continuation qui s'exécute lorsque la Task cible se termine.
Méthode publiquePris en charge dans .NET pour les applications du Windows StoreContinueWith<TResult>(Func<Task, Object, TResult>, Object, CancellationToken)Crée une continuation qui s'exécute lorsque la Task cible se termine.
Méthode publiquePris en charge dans .NET pour les applications du Windows StoreContinueWith<TResult>(Func<Task, Object, TResult>, Object, TaskContinuationOptions)Crée une continuation qui s'exécute lorsque la Task cible se termine.
Méthode publiquePris en charge dans .NET pour les applications du Windows StoreContinueWith<TResult>(Func<Task, Object, TResult>, Object, TaskScheduler)Crée une continuation qui s'exécute lorsque la Task cible se termine.
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreContinueWith<TResult>(Func<Task, TResult>, CancellationToken, TaskContinuationOptions, TaskScheduler)Crée une continuation qui s'exécute en fonction de la condition spécifiée dans les continuationOptions.
Méthode publiquePris en charge dans .NET pour les applications du Windows StoreContinueWith<TResult>(Func<Task, Object, TResult>, Object, CancellationToken, TaskContinuationOptions, TaskScheduler)Crée une continuation qui s'exécute lorsque la Task cible se termine.
Méthode publiqueMembre statiquePris en charge dans .NET pour les applications du Windows StoreDelay(Int32)Crée une tâche qui ne se termine qu'après un certain délai.
Méthode publiqueMembre statiquePris en charge dans .NET pour les applications du Windows StoreDelay(TimeSpan)Crée une tâche qui ne se termine qu'après un certain délai.
Méthode publiqueMembre statiquePris en charge dans .NET pour les applications du Windows StoreDelay(Int32, CancellationToken)Crée une tâche qui ne se termine qu'après un certain délai.
Méthode publiqueMembre statiquePris en charge dans .NET pour les applications du Windows StoreDelay(TimeSpan, CancellationToken)Crée une tâche qui ne se termine qu'après un certain délai.
Méthode publiqueDispose()Libère toutes les ressources utilisées par l'instance actuelle de la classe Task.
Méthode protégéeDispose(Boolean)Supprime la Task, en libérant toutes ses ressources non managées.
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreEquals(Object)Détermine si l'objet spécifié est identique à l'objet actuel. (Hérité de Object.)
Méthode protégéePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreFinalize Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de nettoyage avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de Object.)
Méthode publiqueMembre statiquePris en charge dans .NET pour les applications du Windows StoreFromResult<TResult>Crée un Task<TResult> qui s'est terminé avec succès avec le résultat spécifié.
Méthode publiquePris en charge dans .NET pour les applications du Windows StoreGetAwaiterObtient un élément awaiter utilisé pour attendre cette Task.
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreGetHashCodeSert de fonction de hachage par défaut. (Hérité de Object.)
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreGetTypeObtient le Type de l'instance actuelle. (Hérité de Object.)
Méthode protégéePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreMemberwiseCloneCrée une copie superficielle de l'objet Object actuel. (Hérité de Object.)
Méthode publiqueMembre statiquePris en charge dans .NET pour les applications du Windows StoreRun(Action)Met en file d'attente le travail spécifié à exécuter dans le ThreadPool et retourne un handle de tâche pour ce travail.
Méthode publiqueMembre statiquePris en charge dans .NET pour les applications du Windows StoreRun(Func<Task>)Met en file d'attente le travail spécifié à exécuter dans le ThreadPool et retourne un proxy pour la tâche retournée par function.
Méthode publiqueMembre statiquePris en charge dans .NET pour les applications du Windows StoreRun(Action, CancellationToken)Met en file d'attente le travail spécifié à exécuter dans le ThreadPool et retourne un handle de tâche pour ce travail.
Méthode publiqueMembre statiquePris en charge dans .NET pour les applications du Windows StoreRun(Func<Task>, CancellationToken)Met en file d'attente le travail spécifié à exécuter dans le ThreadPool et retourne un proxy pour la tâche retournée par function.
Méthode publiqueMembre statiquePris en charge dans .NET pour les applications du Windows StoreRun<TResult>(Func<Task<TResult>>)Met en file d'attente le travail spécifié à exécuter dans le ThreadPool et retourne un proxy pour la Task(TResult) retournée par function.
Méthode publiqueMembre statiquePris en charge dans .NET pour les applications du Windows StoreRun<TResult>(Func<TResult>)Met en file d'attente le travail spécifié à exécuter dans le ThreadPool et retourne un handle de Task(TResult) pour ce travail.
Méthode publiqueMembre statiquePris en charge dans .NET pour les applications du Windows StoreRun<TResult>(Func<Task<TResult>>, CancellationToken)Met en file d'attente le travail spécifié à exécuter dans le ThreadPool et retourne un proxy pour la Task(TResult) retournée par function.
Méthode publiqueMembre statiquePris en charge dans .NET pour les applications du Windows StoreRun<TResult>(Func<TResult>, CancellationToken)Queues the specified work to run on the thread pool and returns a Task(TResult) handle for that work.
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreRunSynchronously()Exécute de façon synchrone la Task sur le TaskScheduler en cours.
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreRunSynchronously(TaskScheduler)Exécute de façon synchrone le Task sur le TaskScheduler fourni.
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreStart()Démarre la Task, en planifiant son exécution selon le TaskScheduler en cours.
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreStart(TaskScheduler)Démarre le Task, en planifiant son exécution selon le TaskScheduler spécifié.
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreToStringRetourne une chaîne qui représente l'objet actif. (Hérité de Object.)
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreWait()Attend la fin de l'exécution de Task.
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreWait(CancellationToken)Attend la fin de l'exécution de la Task annulable.
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreWait(Int32)Attend la fin de l'exécution du Task en un nombre de millisecondes spécifié.
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreWait(TimeSpan)Attend la fin de l'exécution du Task dans un intervalle de temps spécifié.
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreWait(Int32, CancellationToken)Attend la fin de l'exécution de la Task annulable.
Méthode publiqueMembre statiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreWaitAll(Task[])Attend la fin de l'exécution de tous les objets Task fournis.
Méthode publiqueMembre statiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreWaitAll(Task[], Int32)Attend la fin de l'exécution de tous les objets Task fournis en un nombre de millisecondes spécifié.
Méthode publiqueMembre statiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreWaitAll(Task[], CancellationToken)Attend la fin de l'exécution de tous les objets Task annulables fournis.
Méthode publiqueMembre statiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreWaitAll(Task[], TimeSpan)Attend la fin de l'exécution de tous les objets Task annulables fournis dans un intervalle de temps spécifié.
Méthode publiqueMembre statiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreWaitAll(Task[], Int32, CancellationToken)Attend la fin de l'exécution de tous les objets Task annulables fournis en un nombre de millisecondes spécifié.
Méthode publiqueMembre statiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreWaitAny(Task[])Attend la fin de l'exécution de l'un des objets Task fournis.
Méthode publiqueMembre statiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreWaitAny(Task[], Int32)Attend la fin de l'exécution de n'importe lequel des objets Task fournis en un nombre de millisecondes spécifié.
Méthode publiqueMembre statiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreWaitAny(Task[], CancellationToken)Attend la fin de l'exécution de chacun des objets Task annulables fournis.
Méthode publiqueMembre statiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreWaitAny(Task[], TimeSpan)Attend la fin de l'exécution de n'importe lequel des objets Task fournis dans un intervalle de temps spécifié.
Méthode publiqueMembre statiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreWaitAny(Task[], Int32, CancellationToken)Attend la fin de l'exécution de n'importe lequel des objets Task annulables fournis en un nombre de millisecondes spécifié.
Méthode publiqueMembre statiquePris en charge dans .NET pour les applications du Windows StoreWhenAll(IEnumerable<Task>)Crée une tâche qui s'achève lorsque toutes les tâches fournies sont terminées.
Méthode publiqueMembre statiquePris en charge dans .NET pour les applications du Windows StoreWhenAll(Task[])Crée une tâche qui s'achève lorsque toutes les tâches fournies sont terminées.
Méthode publiqueMembre statiquePris en charge dans .NET pour les applications du Windows StoreWhenAll<TResult>(IEnumerable<Task<TResult>>)Crée une tâche qui s'achève lorsque toutes les tâches fournies sont terminées.
Méthode publiqueMembre statiquePris en charge dans .NET pour les applications du Windows StoreWhenAll<TResult>(Task<TResult>[])Crée une tâche qui s'achève lorsque toutes les tâches fournies sont terminées.
Méthode publiqueMembre statiquePris en charge dans .NET pour les applications du Windows StoreWhenAny(IEnumerable<Task>)Crée une tâche qui s'achève lorsque l'une des tâches fournies est terminée.
Méthode publiqueMembre statiquePris en charge dans .NET pour les applications du Windows StoreWhenAny(Task[])Crée une tâche qui s'achève lorsque l'une des tâches fournies est terminée.
Méthode publiqueMembre statiquePris en charge dans .NET pour les applications du Windows StoreWhenAny<TResult>(IEnumerable<Task<TResult>>)Crée une tâche qui s'achève lorsque l'une des tâches fournies est terminée.
Méthode publiqueMembre statiquePris en charge dans .NET pour les applications du Windows StoreWhenAny<TResult>(Task<TResult>[])Crée une tâche qui s'achève lorsque l'une des tâches fournies est terminée.
Méthode publiqueMembre statiquePris en charge dans .NET pour les applications du Windows StoreYieldCrée une tâche awaitable qui cède de manière asynchrone sur le contexte actuel une fois attendu.
Début

  NomDescription
Méthode d'extension publiquePris en charge dans .NET pour les applications du Windows StoreAsAsyncActionRetourne une action asynchrone Windows Runtime qui représente une tâche démarrée. (Défini par WindowsRuntimeSystemExtensions.)
Méthode d'extension publiqueDispatcherOperationWait()Surchargé. Attend indéfiniment que l'opération DispatcherOperation sous-jacente se termine. (Défini par TaskExtensions.)
Méthode d'extension publiqueDispatcherOperationWait(TimeSpan)Surchargé. Attend pendant le délai spécifié que le DispatcherOperation sous-jacente se termine. (Défini par TaskExtensions.)
Méthode d'extension publiqueIsDispatcherOperationTaskRetourne une valeur qui indique si cette Task est associée à une DispatcherOperation. (Défini par TaskExtensions.)
Méthode d'extension publiqueToObservable (Défini par TaskObservableExtensions.)
Début

  NomDescription
Implémentation d'interface explicitePropriété privéePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreIAsyncResult.AsyncWaitHandleObtient un WaitHandle qui peut être utilisé en attendant la fin de la tâche.
Implémentation d'interface explicitePropriété privéePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreIAsyncResult.CompletedSynchronouslyObtient une indication précisant si l'opération s'est terminée de façon synchrone.
Début

Les instances Task peuvent être créées de diverses façons. L'approche la plus commune est l'utilisation de la propriété Factory de la tâche pour récupérer une instance TaskFactory qui peut être utilisée pour créer des tâches pour plusieurs utilisations. Par exemple, la méthode StartNew de la fabrique peut être utilisée pour créer un Task qui exécute une action :

// C#
var t = Task.Factory.StartNew(() => DoAction());

' Visual Basic
 Dim t = Task.Factory.StartNew(Function() DoAction())

Pour des exemples plus complets, consultez Parallélisme des tâches (bibliothèque parallèle de tâches).

La classe Task fournit également des constructeurs qui initialisent la tâche mais qui ne la planifient pas pour l'exécution. Pour des raisons de performances, la méthode StartNew de fabrique de tâche doit être le mécanisme recommandé pour la création et la planification des tâches de calcul ; pour les scénarios où la création et la planification doivent être séparées, les constructeurs peuvent être utilisés et la méthode Start de la tâche peut ensuite être employée pour planifier cette dernière en vue de son exécution ultérieure.

Pour les opérations qui retournent des valeurs, la classe Task<TResult> doit être utilisée.

Pour les développeurs de débogueur

Pour les développeurs qui implémentent des débogueurs personnalisés, plusieurs membres internes et privés de tâche peuvent être utiles (ils peuvent varier d'une version à une autre). Le champ m_taskId sert de magasin de stockage pour la propriété Id, cependant l'accès direct à ce champ depuis un débogueur peut être plus efficace qu'accéder à la même valeur via la méthode de la propriété de l'accesseur (le compteur s_taskIdCounter est utilisé pour récupérer l'ID disponible suivant pour une tâche). De la même façon, le champ m_stateFlags stocke les informations à propos de l'étape de cycle de vie actuelle de la tâche, informations également accessibles via la propriété Status. Le champ m_action stocke une référence au délégué de la tâche, et le champ m_stateObject enregistre l'état asynchrone passé à la tâche par le développeur. Enfin, pour les débogueurs qui analysent des frames de pile, la méthode InternalWait prend en charge un marqueur potentiel dans le cas où une opération d'attente est lancée pour une tâche.

RemarqueRemarque

L'attribut HostProtectionAttribute appliqué à ce type ou membre a la valeur de propriété Resources suivante : Synchronization | ExternalThreading. HostProtectionAttribute n'affecte pas les applications bureautiques (qui sont généralement démarrées en double-cliquant sur une icône, en tapant une commande ou en entrant une URL dans un navigateur). Pour plus d'informations, consultez la classe HostProtectionAttribute ou Attributs de programmation et de protection des hôtes SQL Server.

L'exemple suivant montre comment démarrer une tâche en utilisant la méthode TaskFactory.StartNew :


// Demonstrated features:
//		Task ctor()
// 		Task.Factory
//		Task.Wait()
//		Task.RunSynchronously()
// Expected results:
// 		Task t1 (alpha) is created unstarted.
//		Task t2 (beta) is created started.
//		Task t1's (alpha) start is held until after t2 (beta) is started.
//		Both tasks t1 (alpha) and t2 (beta) are potentially executed on 
//           threads other than the main thread on multi-core machines.
//		Task t3 (gamma) is executed synchronously on the main thread.
using System;
using System.Threading;
using System.Threading.Tasks;

class StartNewDemo
{
    static void Main()
    {
        Action<object> action = (object obj) =>
        {
            Console.WriteLine("Task={0}, obj={1}, Thread={2}", 
                              Task.CurrentId, obj.ToString(), 
                              Thread.CurrentThread.ManagedThreadId);
        };

        // Construct an unstarted task
        Task t1 = new Task(action, "alpha");

        // Cosntruct a started task
        Task t2 = Task.Factory.StartNew(action, "beta");

        // Block the main thread to demonstate that t2 is executing
        t2.Wait();

        // Launch t1 
        t1.Start();

        Console.WriteLine("t1 has been launched. (Main Thread={0})", 
                          Thread.CurrentThread.ManagedThreadId);

        // Wait for the task to finish.
        // You may optionally provide a timeout interval or a cancellation token
        // to mitigate situations when the task takes too long to finish.
        t1.Wait();

        // Construct an unstarted task
        Task t3 = new Task(action, "gamma");

        // Run it synchronously
        t3.RunSynchronously();

        // Although the task was run synchronously, it is a good practice
        // to wait for it in the event exceptions were thrown by the task.
        t3.Wait();
    }
}


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

Tous les membres de Task, sauf Dispose, sont thread-safe et peuvent être utilisés simultanément à partir de plusieurs threads.

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft