Lire en anglais

Partager via


Task<TResult> Constructeurs

Définition

Initialise un nouvel objet Task<TResult>.

Surcharges

Task<TResult>(Func<TResult>)

Initialise une nouvelle Task<TResult> avec la fonction spécifiée.

Task<TResult>(Func<Object,TResult>, Object)

Initialise un nouveau Task<TResult> avec la fonction et l'état spécifiés.

Task<TResult>(Func<TResult>, CancellationToken)

Initialise une nouvelle Task<TResult> avec la fonction spécifiée.

Task<TResult>(Func<TResult>, TaskCreationOptions)

Initialise une nouvelle Task<TResult> avec la fonction et les options de création spécifiées.

Task<TResult>(Func<Object,TResult>, Object, CancellationToken)

Initialise une nouvelle Task<TResult> avec l'action, l'état et les options spécifiés.

Task<TResult>(Func<Object,TResult>, Object, TaskCreationOptions)

Initialise une nouvelle Task<TResult> avec l'action, l'état et les options spécifiés.

Task<TResult>(Func<TResult>, CancellationToken, TaskCreationOptions)

Initialise une nouvelle Task<TResult> avec la fonction et les options de création spécifiées.

Task<TResult>(Func<Object,TResult>, Object, CancellationToken, TaskCreationOptions)

Initialise une nouvelle Task<TResult> avec l'action, l'état et les options spécifiés.

Task<TResult>(Func<TResult>)

Initialise une nouvelle Task<TResult> avec la fonction spécifiée.

C#
public Task (Func<TResult> function);

Paramètres

function
Func<TResult>

Délégué qui représente le code à exécuter dans la tâche. Quand cette fonction aura terminé, la propriété Result de la tâche sera configurée pour retourner la valeur de résultat de la fonction.

Exceptions

L'argument function a la valeur null.

L'argument function a la valeur null.

Exemples

L’exemple suivant compte le nombre approximatif de mots dans les fichiers texte qui représentent des livres publiés. Chaque tâche est chargée d’ouvrir un fichier, de lire son contenu entier de manière asynchrone et de calculer le nombre de mots à l’aide d’une expression régulière. La Task.WaitAll(Task[]) méthode est appelée pour s’assurer que toutes les tâches ont été effectuées avant d’afficher le nombre de mots de chaque livre sur la console.

L’instanciation d’objet est séparée de l’exécution d’objets dans cet exemple afin que l’exemple puisse s’assurer que chaque fichier existe. Si ce n’est pas le cas, il affiche le nom du fichier manquant. Sinon, il appelle la Task.Start méthode pour lancer chaque tâche.

C#
using System;
using System.IO;
using System.Text.RegularExpressions;
using System.Threading.Tasks;

public class Example
{
   public static async Task Main()
   {
      string pattern = @"\p{P}*\s+";
      string[] titles = { "Sister Carrie", "The Financier" };
      Task<int>[] tasks = new Task<int>[titles.Length];

      for (int ctr = 0; ctr < titles.Length; ctr++) {
         string s = titles[ctr];
         tasks[ctr] = new Task<int>( () => {
                                   // Number of words.
                                   int nWords = 0;
                                   // Create filename from title.
                                   string fn = s + ".txt";

                                   StreamReader sr = new StreamReader(fn);
                                   string input = sr.ReadToEndAsync().Result;
                                   sr.Close();
                                   nWords = Regex.Matches(input, pattern).Count;
                                   return nWords;
                                } );
      }
      // Ensure files exist before launching tasks.
      bool allExist = true;
      foreach (var title in titles) {
         string fn = title + ".txt";
         if (! File.Exists(fn)) {
            allExist = false;
            Console.WriteLine("Cannot find '{0}'", fn);
            break;
         }   
      }
      // Launch tasks 
      if (allExist) {
         foreach (var t in tasks)
            t.Start();
      
        await Task.WhenAll(tasks);
  
        Console.WriteLine("Word Counts:\n");
        for (int ctr = 0; ctr < titles.Length; ctr++)
           Console.WriteLine("{0}: {1,10:N0} words", titles[ctr], tasks[ctr].Result);
      }   
   }
}
// The example displays the following output:
//       Sister Carrie:    159,374 words
//       The Financier:    196,362 words

Le modèle \p{P}*\s+ d’expression régulière correspond à zéro, un ou plusieurs caractères de ponctuation suivis d’un ou plusieurs caractères d’espace blanc. Il suppose que le nombre total de correspondances est égal au nombre approximatif de mots.

Remarques

Ce constructeur ne doit être utilisé que dans des scénarios avancés où il est nécessaire que la création et le démarrage de la tâche soient séparés.

Au lieu d’appeler ce constructeur, le moyen le plus courant d’instancier un Task<TResult> objet et de lancer une tâche consiste à appeler les méthodes statiques Task.Run<TResult>(Func<TResult>) et TaskFactory<TResult>.StartNew(Func<TResult>) les méthodes.

Si une tâche sans action n’est nécessaire que pour que le consommateur d’une API ait quelque chose à attendre, un TaskCompletionSource<TResult> doit être utilisé.

Voir aussi

S’applique à

.NET 7 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

Task<TResult>(Func<Object,TResult>, Object)

Initialise un nouveau Task<TResult> avec la fonction et l'état spécifiés.

C#
public Task (Func<object,TResult> function, object state);
C#
public Task (Func<object?,TResult> function, object? state);

Paramètres

function
Func<Object,TResult>

Délégué qui représente le code à exécuter dans la tâche. Quand cette fonction aura terminé, la propriété Result de la tâche sera configurée pour retourner la valeur de résultat de la fonction.

state
Object

Objet représentant les données que l'action doit utiliser.

Exceptions

L'argument function a la valeur null.

L'argument function a la valeur null.

Remarques

Au lieu d’appeler ce constructeur, la méthode la plus courante pour instancier un Task<TResult> objet et lancer une tâche consiste à appeler la méthode statique TaskFactory<TResult>.StartNew(Func<Object,TResult>, Object) . Le seul avantage offert par ce constructeur est qu’il permet à l’instanciation d’objet d’être séparée de l’appel de tâche.

Voir aussi

S’applique à

.NET 7 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

Task<TResult>(Func<TResult>, CancellationToken)

Initialise une nouvelle Task<TResult> avec la fonction spécifiée.

C#
public Task (Func<TResult> function, System.Threading.CancellationToken cancellationToken);

Paramètres

function
Func<TResult>

Délégué qui représente le code à exécuter dans la tâche. Quand cette fonction aura terminé, la propriété Result de la tâche sera configurée pour retourner la valeur de résultat de la fonction.

cancellationToken
CancellationToken

CancellationToken à assigner à cette tâche.

Exceptions

Le CancellationTokenSource qui a créé cancellationToken a déjà été supprimé.

L'argument function a la valeur null.

L'argument function a la valeur null.

Remarques

Au lieu d’appeler ce constructeur, le moyen le plus courant d’instancier un Task<TResult> objet et de lancer une tâche consiste à appeler les méthodes statiques Task.Run<TResult>(Func<TResult>, CancellationToken) et TaskFactory<TResult>.StartNew(Func<TResult>, CancellationToken) les méthodes. Le seul avantage offert par ce constructeur est qu’il permet à l’instanciation d’objet d’être séparée de l’appel de tâche.

Voir aussi

S’applique à

.NET 7 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

Task<TResult>(Func<TResult>, TaskCreationOptions)

Initialise une nouvelle Task<TResult> avec la fonction et les options de création spécifiées.

C#
public Task (Func<TResult> function, System.Threading.Tasks.TaskCreationOptions creationOptions);

Paramètres

function
Func<TResult>

Délégué qui représente le code à exécuter dans la tâche. Quand cette fonction aura terminé, la propriété Result de la tâche sera configurée pour retourner la valeur de résultat de la fonction.

creationOptions
TaskCreationOptions

TaskCreationOptions utilisé pour personnaliser le comportement de la tâche.

Exceptions

L'argument creationOptions spécifie une valeur non valide pour TaskCreationOptions.

L'argument function a la valeur null.

L'argument function a la valeur null.

Remarques

Au lieu d’appeler ce constructeur, la méthode la plus courante pour instancier un Task<TResult> objet et lancer une tâche consiste à appeler la méthode statique TaskFactory<TResult>.StartNew(Func<TResult>, TaskCreationOptions) . Le seul avantage offert par ce constructeur est qu’il permet à l’instanciation d’objet d’être séparée de l’appel de tâche.

Voir aussi

S’applique à

.NET 7 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

Task<TResult>(Func<Object,TResult>, Object, CancellationToken)

Initialise une nouvelle Task<TResult> avec l'action, l'état et les options spécifiés.

C#
public Task (Func<object,TResult> function, object state, System.Threading.CancellationToken cancellationToken);
C#
public Task (Func<object?,TResult> function, object? state, System.Threading.CancellationToken cancellationToken);

Paramètres

function
Func<Object,TResult>

Délégué qui représente le code à exécuter dans la tâche. Quand cette fonction aura terminé, la propriété Result de la tâche sera configurée pour retourner la valeur de résultat de la fonction.

state
Object

Objet représentant les données que la fonction doit utiliser.

cancellationToken
CancellationToken

CancellationToken à assigner à la nouvelle tâche.

Exceptions

Le CancellationTokenSource qui a créé cancellationToken a déjà été supprimé.

L'argument function a la valeur null.

L'argument function a la valeur null.

Remarques

Au lieu d’appeler ce constructeur, la méthode la plus courante pour instancier un Task<TResult> objet et lancer une tâche consiste à appeler la méthode statique TaskFactory<TResult>.StartNew(Func<Object,TResult>, Object, CancellationToken) . Le seul avantage offert par ce constructeur est qu’il permet à l’instanciation d’objet d’être séparée de l’appel de tâche.

Voir aussi

S’applique à

.NET 7 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

Task<TResult>(Func<Object,TResult>, Object, TaskCreationOptions)

Initialise une nouvelle Task<TResult> avec l'action, l'état et les options spécifiés.

C#
public Task (Func<object,TResult> function, object state, System.Threading.Tasks.TaskCreationOptions creationOptions);
C#
public Task (Func<object?,TResult> function, object? state, System.Threading.Tasks.TaskCreationOptions creationOptions);

Paramètres

function
Func<Object,TResult>

Délégué qui représente le code à exécuter dans la tâche. Quand cette fonction aura terminé, la propriété Result de la tâche sera configurée pour retourner la valeur de résultat de la fonction.

state
Object

Objet représentant les données que la fonction doit utiliser.

creationOptions
TaskCreationOptions

TaskCreationOptions utilisé pour personnaliser le comportement de la tâche.

Exceptions

L'argument creationOptions spécifie une valeur non valide pour TaskCreationOptions.

L'argument function a la valeur null.

L'argument function a la valeur null.

Remarques

Au lieu d’appeler ce constructeur, la méthode la plus courante pour instancier un Task<TResult> objet et lancer une tâche consiste à appeler la méthode statique TaskFactory<TResult>.StartNew(Func<Object,TResult>, Object, TaskCreationOptions) . Le seul avantage offert par ce constructeur est qu’il permet à l’instanciation d’objet d’être séparée de l’appel de tâche.

Voir aussi

S’applique à

.NET 7 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

Task<TResult>(Func<TResult>, CancellationToken, TaskCreationOptions)

Initialise une nouvelle Task<TResult> avec la fonction et les options de création spécifiées.

C#
public Task (Func<TResult> function, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskCreationOptions creationOptions);

Paramètres

function
Func<TResult>

Délégué qui représente le code à exécuter dans la tâche. Quand cette fonction aura terminé, la propriété Result de la tâche sera configurée pour retourner la valeur de résultat de la fonction.

cancellationToken
CancellationToken

CancellationToken qui sera assigné à la nouvelle tâche.

creationOptions
TaskCreationOptions

TaskCreationOptions utilisé pour personnaliser le comportement de la tâche.

Exceptions

Le CancellationTokenSource qui a créé cancellationToken a déjà été supprimé.

L'argument creationOptions spécifie une valeur non valide pour TaskCreationOptions.

L'argument function a la valeur null.

L'argument function a la valeur null.

Remarques

Au lieu d’appeler ce constructeur, la méthode la plus courante pour instancier un Task<TResult> objet et lancer une tâche consiste à appeler la méthode statique TaskFactory.StartNew<TResult>(Func<TResult>, CancellationToken, TaskCreationOptions, TaskScheduler) . Le seul avantage offert par ce constructeur est qu’il permet à l’instanciation d’objet d’être séparée de l’appel de tâche.

Voir aussi

S’applique à

.NET 7 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

Task<TResult>(Func<Object,TResult>, Object, CancellationToken, TaskCreationOptions)

Initialise une nouvelle Task<TResult> avec l'action, l'état et les options spécifiés.

C#
public Task (Func<object,TResult> function, object state, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskCreationOptions creationOptions);
C#
public Task (Func<object?,TResult> function, object? state, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskCreationOptions creationOptions);

Paramètres

function
Func<Object,TResult>

Délégué qui représente le code à exécuter dans la tâche. Quand cette fonction aura terminé, la propriété Result de la tâche sera configurée pour retourner la valeur de résultat de la fonction.

state
Object

Objet représentant les données que la fonction doit utiliser.

cancellationToken
CancellationToken

CancellationToken à assigner à la nouvelle tâche.

creationOptions
TaskCreationOptions

TaskCreationOptions utilisé pour personnaliser le comportement de la tâche.

Exceptions

Le CancellationTokenSource qui a créé cancellationToken a déjà été supprimé.

L'argument creationOptions spécifie une valeur non valide pour TaskCreationOptions.

L'argument function a la valeur null.

L'argument function a la valeur null.

Remarques

Au lieu d’appeler ce constructeur, la méthode la plus courante pour instancier un Task<TResult> objet et lancer une tâche consiste à appeler la méthode statique TaskFactory<TResult>.StartNew(Func<Object,TResult>, Object, CancellationToken, TaskCreationOptions, TaskScheduler) . Le seul avantage offert par ce constructeur est qu’il permet à l’instanciation d’objet d’être séparée de l’appel de tâche.

Voir aussi

S’applique à

.NET 7 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0