Task<TResult> Konstruktorer

Definition

Initierar ett nytt Task<TResult> objekt.

Överlagringar

Name Description
Task<TResult>(Func<TResult>)

Initierar en ny Task<TResult> med den angivna funktionen.

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

Initierar en ny Task<TResult> med den angivna funktionen och tillståndet.

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

Initierar en ny Task<TResult> med den angivna funktionen.

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

Initierar en ny Task<TResult> med de angivna alternativen för funktion och skapande.

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

Initierar en ny Task<TResult> med den angivna åtgärden, tillståndet och alternativen.

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

Initierar en ny Task<TResult> med den angivna åtgärden, tillståndet och alternativen.

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

Initierar en ny Task<TResult> med de angivna alternativen för funktion och skapande.

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

Initierar en ny Task<TResult> med den angivna åtgärden, tillståndet och alternativen.

Task<TResult>(Func<TResult>)

Källa:
Future.cs
Källa:
Task_T.cs
Källa:
Future.cs
Källa:
Future.cs
Källa:
Future.cs

Initierar en ny Task<TResult> med den angivna funktionen.

public:
 Task(Func<TResult> ^ function);
public Task(Func<TResult> function);
new System.Threading.Tasks.Task<'Result> : Func<'Result> -> System.Threading.Tasks.Task<'Result>
Public Sub New (function As Func(Of TResult))

Parametrar

function
Func<TResult>

Ombudet som representerar koden som ska köras i uppgiften. När funktionen har slutförts ställs aktivitetens egenskap in för att returnera funktionens Result resultatvärde.

Undantag

Argumentet function är null.

Argumentet function är null.

Exempel

I följande exempel räknas det ungefärliga antalet ord i textfiler som representerar publicerade böcker. Varje uppgift ansvarar för att öppna en fil, läsa hela innehållet asynkront och beräkna antalet ord med hjälp av ett reguljärt uttryck. Metoden Task.WaitAll(Task[]) anropas för att säkerställa att alla uppgifter har slutförts innan ordantalet för varje bok visas i konsolen.

Objektinstansiering separeras från objektkörning i det här exemplet så att exemplet kan säkerställa att varje fil finns. Om de inte gör det visas namnet på den saknade filen. Annars anropas Task.Start metoden för att starta varje uppgift.

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
Imports System.IO
Imports System.Text.RegularExpressions
Imports System.Threading.Tasks

Module Example
   Public Sub Main()
      Dim pattern As String = "\p{P}*\s+"
      Dim titles() As String = { "Sister Carrie",
                                 "The Financier" }
      Dim tasks(titles.Length - 1) As Task(Of Integer)

      For ctr As Integer = 0 To titles.Length - 1
         Dim s As String = titles(ctr)
         tasks(ctr) = New Task(Of Integer)( Function()
                                   ' Number of words.
                                   Dim nWords As Integer = 0
                                   ' Create filename from title.
                                   Dim fn As String = s + ".txt"

                                   Dim sr As New StreamReader(fn)
                                   Dim input As String = sr.ReadToEndAsync().Result
                                   sr.Close()
                                   nWords = Regex.Matches(input, pattern).Count
                                   Return nWords
                                End Function)
      Next

      ' Ensure files exist before launching tasks.
      Dim allExist As Boolean = True
      For Each title In titles
         Dim fn As String = title + ".txt"
         If Not File.Exists(fn) Then
            allExist = false
            Console.WriteLine("Cannot find '{0}'", fn)
            Exit For
         End If   
      Next
      ' Launch tasks 
      If allExist Then
         For Each t in tasks
            t.Start()
         Next
         Task.WaitAll(tasks)

         Console.WriteLine("Word Counts:")
         Console.WriteLine()
         For ctr As Integer = 0 To titles.Length - 1
         Console.WriteLine("{0}: {1,10:N0} words", titles(ctr), tasks(ctr).Result)
         Next
      End If   
   End Sub
End Module
' The example displays the following output:
'       Sister Carrie:    159,374 words
'       The Financier:    196,362 words

Mönster för \p{P}*\s+ reguljära uttryck matchar noll, ett eller flera skiljetecken följt av ett eller flera blankstegstecken. Det förutsätter att det totala antalet matchningar är lika med det ungefärliga antalet ord.

Kommentarer

Den här konstruktorn bör endast användas i avancerade scenarier där det krävs att skapande och start av uppgiften separeras.

I stället för att anropa den här konstruktorn är det vanligaste sättet att instansiera ett Task<TResult> objekt och starta en uppgift genom att anropa statiska Task.Run<TResult>(Func<TResult>) metoder och TaskFactory<TResult>.StartNew(Func<TResult>) metoder.

Om en uppgift utan åtgärd behövs bara för att konsumenten av ett API ska ha något att vänta på, bör en TaskCompletionSource<TResult> användas.

Se även

Gäller för

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

Källa:
Future.cs
Källa:
Task_T.cs
Källa:
Future.cs
Källa:
Future.cs
Källa:
Future.cs

Initierar en ny Task<TResult> med den angivna funktionen och tillståndet.

public:
 Task(Func<System::Object ^, TResult> ^ function, System::Object ^ state);
public Task(Func<object,TResult> function, object state);
public Task(Func<object?,TResult> function, object? state);
new System.Threading.Tasks.Task<'Result> : Func<obj, 'Result> * obj -> System.Threading.Tasks.Task<'Result>
Public Sub New (function As Func(Of Object, TResult), state As Object)

Parametrar

function
Func<Object,TResult>

Ombudet som representerar koden som ska köras i uppgiften. När funktionen har slutförts ställs aktivitetens egenskap in för att returnera funktionens Result resultatvärde.

state
Object

Ett objekt som representerar data som ska användas av åtgärden.

Undantag

Argumentet function är null.

Argumentet function är null.

Kommentarer

I stället för att anropa den här konstruktorn är det vanligaste sättet att instansiera ett Task<TResult> objekt och starta en uppgift genom att anropa den statiska TaskFactory<TResult>.StartNew(Func<Object,TResult>, Object) metoden. Den enda fördelen som erbjuds av den här konstruktorn är att den tillåter att instansiering av objekt separeras från aktivitetsanrop.

Se även

Gäller för

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

Källa:
Future.cs
Källa:
Task_T.cs
Källa:
Future.cs
Källa:
Future.cs
Källa:
Future.cs

Initierar en ny Task<TResult> med den angivna funktionen.

public:
 Task(Func<TResult> ^ function, System::Threading::CancellationToken cancellationToken);
public Task(Func<TResult> function, System.Threading.CancellationToken cancellationToken);
new System.Threading.Tasks.Task<'Result> : Func<'Result> * System.Threading.CancellationToken -> System.Threading.Tasks.Task<'Result>
Public Sub New (function As Func(Of TResult), cancellationToken As CancellationToken)

Parametrar

function
Func<TResult>

Ombudet som representerar koden som ska köras i uppgiften. När funktionen har slutförts ställs aktivitetens egenskap in för att returnera funktionens Result resultatvärde.

cancellationToken
CancellationToken

Som CancellationToken ska tilldelas till den här uppgiften.

Undantag

Den CancellationTokenSource skapade cancellationToken har redan tagits bort.

Argumentet function är null.

Argumentet function är null.

Kommentarer

I stället för att anropa den här konstruktorn är det vanligaste sättet att instansiera ett Task<TResult> objekt och starta en uppgift genom att anropa statiska Task.Run<TResult>(Func<TResult>, CancellationToken) metoder och TaskFactory<TResult>.StartNew(Func<TResult>, CancellationToken) metoder. Den enda fördelen som erbjuds av den här konstruktorn är att den tillåter att instansiering av objekt separeras från aktivitetsanrop.

Se även

Gäller för

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

Källa:
Future.cs
Källa:
Task_T.cs
Källa:
Future.cs
Källa:
Future.cs
Källa:
Future.cs

Initierar en ny Task<TResult> med de angivna alternativen för funktion och skapande.

public:
 Task(Func<TResult> ^ function, System::Threading::Tasks::TaskCreationOptions creationOptions);
public Task(Func<TResult> function, System.Threading.Tasks.TaskCreationOptions creationOptions);
new System.Threading.Tasks.Task<'Result> : Func<'Result> * System.Threading.Tasks.TaskCreationOptions -> System.Threading.Tasks.Task<'Result>
Public Sub New (function As Func(Of TResult), creationOptions As TaskCreationOptions)

Parametrar

function
Func<TResult>

Ombudet som representerar koden som ska köras i uppgiften. När funktionen har slutförts ställs aktivitetens egenskap in för att returnera funktionens Result resultatvärde.

creationOptions
TaskCreationOptions

Används TaskCreationOptions för att anpassa aktivitetens beteende.

Undantag

Argumentet creationOptions anger ett ogiltigt värde för TaskCreationOptions.

Argumentet function är null.

Argumentet function är null.

Kommentarer

I stället för att anropa den här konstruktorn är det vanligaste sättet att instansiera ett Task<TResult> objekt och starta en uppgift genom att anropa den statiska TaskFactory<TResult>.StartNew(Func<TResult>, TaskCreationOptions) metoden. Den enda fördelen som erbjuds av den här konstruktorn är att den tillåter att instansiering av objekt separeras från aktivitetsanrop.

Se även

Gäller för

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

Källa:
Future.cs
Källa:
Task_T.cs
Källa:
Future.cs
Källa:
Future.cs
Källa:
Future.cs

Initierar en ny Task<TResult> med den angivna åtgärden, tillståndet och alternativen.

public:
 Task(Func<System::Object ^, TResult> ^ function, System::Object ^ state, System::Threading::CancellationToken cancellationToken);
public Task(Func<object,TResult> function, object state, System.Threading.CancellationToken cancellationToken);
public Task(Func<object?,TResult> function, object? state, System.Threading.CancellationToken cancellationToken);
new System.Threading.Tasks.Task<'Result> : Func<obj, 'Result> * obj * System.Threading.CancellationToken -> System.Threading.Tasks.Task<'Result>
Public Sub New (function As Func(Of Object, TResult), state As Object, cancellationToken As CancellationToken)

Parametrar

function
Func<Object,TResult>

Ombudet som representerar koden som ska köras i uppgiften. När funktionen har slutförts ställs aktivitetens egenskap in för att returnera funktionens Result resultatvärde.

state
Object

Ett objekt som representerar data som ska användas av funktionen.

cancellationToken
CancellationToken

Som CancellationToken ska tilldelas till den nya aktiviteten.

Undantag

Den CancellationTokenSource skapade cancellationToken har redan tagits bort.

Argumentet function är null.

Argumentet function är null.

Kommentarer

I stället för att anropa den här konstruktorn är det vanligaste sättet att instansiera ett Task<TResult> objekt och starta en uppgift genom att anropa den statiska TaskFactory<TResult>.StartNew(Func<Object,TResult>, Object, CancellationToken) metoden. Den enda fördelen som erbjuds av den här konstruktorn är att den tillåter att instansiering av objekt separeras från aktivitetsanrop.

Se även

Gäller för

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

Källa:
Future.cs
Källa:
Task_T.cs
Källa:
Future.cs
Källa:
Future.cs
Källa:
Future.cs

Initierar en ny Task<TResult> med den angivna åtgärden, tillståndet och alternativen.

public:
 Task(Func<System::Object ^, TResult> ^ function, System::Object ^ state, System::Threading::Tasks::TaskCreationOptions creationOptions);
public Task(Func<object,TResult> function, object state, System.Threading.Tasks.TaskCreationOptions creationOptions);
public Task(Func<object?,TResult> function, object? state, System.Threading.Tasks.TaskCreationOptions creationOptions);
new System.Threading.Tasks.Task<'Result> : Func<obj, 'Result> * obj * System.Threading.Tasks.TaskCreationOptions -> System.Threading.Tasks.Task<'Result>
Public Sub New (function As Func(Of Object, TResult), state As Object, creationOptions As TaskCreationOptions)

Parametrar

function
Func<Object,TResult>

Ombudet som representerar koden som ska köras i uppgiften. När funktionen har slutförts ställs aktivitetens egenskap in för att returnera funktionens Result resultatvärde.

state
Object

Ett objekt som representerar data som ska användas av funktionen.

creationOptions
TaskCreationOptions

Används TaskCreationOptions för att anpassa aktivitetens beteende.

Undantag

Argumentet creationOptions anger ett ogiltigt värde för TaskCreationOptions.

Argumentet function är null.

Argumentet function är null.

Kommentarer

I stället för att anropa den här konstruktorn är det vanligaste sättet att instansiera ett Task<TResult> objekt och starta en uppgift genom att anropa den statiska TaskFactory<TResult>.StartNew(Func<Object,TResult>, Object, TaskCreationOptions) metoden. Den enda fördelen som erbjuds av den här konstruktorn är att den tillåter att instansiering av objekt separeras från aktivitetsanrop.

Se även

Gäller för

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

Källa:
Future.cs
Källa:
Task_T.cs
Källa:
Future.cs
Källa:
Future.cs
Källa:
Future.cs

Initierar en ny Task<TResult> med de angivna alternativen för funktion och skapande.

public:
 Task(Func<TResult> ^ function, System::Threading::CancellationToken cancellationToken, System::Threading::Tasks::TaskCreationOptions creationOptions);
public Task(Func<TResult> function, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskCreationOptions creationOptions);
new System.Threading.Tasks.Task<'Result> : Func<'Result> * System.Threading.CancellationToken * System.Threading.Tasks.TaskCreationOptions -> System.Threading.Tasks.Task<'Result>
Public Sub New (function As Func(Of TResult), cancellationToken As CancellationToken, creationOptions As TaskCreationOptions)

Parametrar

function
Func<TResult>

Ombudet som representerar koden som ska köras i uppgiften. När funktionen har slutförts ställs aktivitetens egenskap in för att returnera funktionens Result resultatvärde.

cancellationToken
CancellationToken

Det CancellationToken som ska tilldelas till den nya aktiviteten.

creationOptions
TaskCreationOptions

Används TaskCreationOptions för att anpassa aktivitetens beteende.

Undantag

Den CancellationTokenSource skapade cancellationToken har redan tagits bort.

Argumentet creationOptions anger ett ogiltigt värde för TaskCreationOptions.

Argumentet function är null.

Argumentet function är null.

Kommentarer

I stället för att anropa den här konstruktorn är det vanligaste sättet att instansiera ett Task<TResult> objekt och starta en uppgift genom att anropa den statiska TaskFactory.StartNew<TResult>(Func<TResult>, CancellationToken, TaskCreationOptions, TaskScheduler) metoden. Den enda fördelen som erbjuds av den här konstruktorn är att den tillåter att instansiering av objekt separeras från aktivitetsanrop.

Se även

Gäller för

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

Källa:
Future.cs
Källa:
Task_T.cs
Källa:
Future.cs
Källa:
Future.cs
Källa:
Future.cs

Initierar en ny Task<TResult> med den angivna åtgärden, tillståndet och alternativen.

public:
 Task(Func<System::Object ^, TResult> ^ function, System::Object ^ state, System::Threading::CancellationToken cancellationToken, System::Threading::Tasks::TaskCreationOptions creationOptions);
public Task(Func<object,TResult> function, object state, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskCreationOptions creationOptions);
public Task(Func<object?,TResult> function, object? state, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskCreationOptions creationOptions);
new System.Threading.Tasks.Task<'Result> : Func<obj, 'Result> * obj * System.Threading.CancellationToken * System.Threading.Tasks.TaskCreationOptions -> System.Threading.Tasks.Task<'Result>
Public Sub New (function As Func(Of Object, TResult), state As Object, cancellationToken As CancellationToken, creationOptions As TaskCreationOptions)

Parametrar

function
Func<Object,TResult>

Ombudet som representerar koden som ska köras i uppgiften. När funktionen har slutförts ställs aktivitetens egenskap in för att returnera funktionens Result resultatvärde.

state
Object

Ett objekt som representerar data som ska användas av funktionen.

cancellationToken
CancellationToken

Som CancellationToken ska tilldelas till den nya aktiviteten.

creationOptions
TaskCreationOptions

Används TaskCreationOptions för att anpassa aktivitetens beteende.

Undantag

Den CancellationTokenSource skapade cancellationToken har redan tagits bort.

Argumentet creationOptions anger ett ogiltigt värde för TaskCreationOptions.

Argumentet function är null.

Argumentet function är null.

Kommentarer

I stället för att anropa den här konstruktorn är det vanligaste sättet att instansiera ett Task<TResult> objekt och starta en uppgift genom att anropa den statiska TaskFactory<TResult>.StartNew(Func<Object,TResult>, Object, CancellationToken, TaskCreationOptions, TaskScheduler) metoden. Den enda fördelen som erbjuds av den här konstruktorn är att den tillåter att instansiering av objekt separeras från aktivitetsanrop.

Se även

Gäller för