Task<TResult> Konstruktory

Definicja

Inicjuje nowy Task<TResult> obiekt.

Przeciążenia

Task<TResult>(Func<TResult>)

Inicjuje nową Task<TResult> z określoną funkcją.

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

Inicjuje nową Task<TResult> z określoną funkcją i stanem.

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

Inicjuje nową Task<TResult> z określoną funkcją.

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

Inicjuje nową Task<TResult> z określoną funkcją i opcjami tworzenia.

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

Inicjuje nową Task<TResult> akcję, stan i opcje.

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

Inicjuje nową Task<TResult> akcję, stan i opcje.

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

Inicjuje nową Task<TResult> z określoną funkcją i opcjami tworzenia.

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

Inicjuje nową Task<TResult> akcję, stan i opcje.

Task<TResult>(Func<TResult>)

Inicjuje nową Task<TResult> z określoną funkcją.

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

Parametry

function
Func<TResult>

Delegat reprezentujący kod do wykonania w zadaniu. Po zakończeniu działania funkcji właściwość zadania zostanie ustawiona Result tak, aby zwracała wartość wynikową funkcji.

Wyjątki

Argumentem function jest null.

Argumentem function jest null.

Przykłady

Poniższy przykład zlicza przybliżoną liczbę wyrazów w plikach tekstowych reprezentujących opublikowane książki. Każde zadanie jest odpowiedzialne za otwieranie pliku, odczytywanie całej zawartości asynchronicznie i obliczanie liczby wyrazów przy użyciu wyrażenia regularnego. Metoda jest wywoływana Task.WaitAll(Task[]) w celu upewnienia się, że wszystkie zadania zostały wykonane przed wyświetleniem liczby wyrazów każdej książki w konsoli.

Wystąpienie obiektu jest oddzielone od wykonywania obiektu w tym przykładzie, dzięki czemu przykład może zagwarantować, że każdy plik istnieje. Jeśli tak nie jest, zostanie wyświetlona nazwa brakującego pliku. W przeciwnym razie wywołuje metodę Task.Start , aby uruchomić każde zadanie.

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

Wzorzec \p{P}*\s+ wyrażenia regularnego pasuje do zera, co najmniej jednego znaku interpunkcyjnego, po którym następuje co najmniej jeden znak odstępu. Przyjęto założenie, że łączna liczba dopasowań jest równa przybliżonej liczbie wyrazów.

Uwagi

Ten konstruktor powinien być używany tylko w zaawansowanych scenariuszach, w których wymagane jest oddzielenie tworzenia i uruchamiania zadania.

Zamiast wywoływać ten konstruktor, najczęstszym sposobem utworzenia wystąpienia Task<TResult> obiektu i uruchomienia zadania jest wywołanie metod statycznych Task.Run<TResult>(Func<TResult>) i TaskFactory<TResult>.StartNew(Func<TResult>) .

Jeśli zadanie bez akcji jest potrzebne tylko użytkownikowi interfejsu API do oczekiwania, TaskCompletionSource<TResult> należy użyć elementu .

Zobacz też

Dotyczy

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

Inicjuje nową Task<TResult> z określoną funkcją i stanem.

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)

Parametry

function
Func<Object,TResult>

Delegat reprezentujący kod do wykonania w zadaniu. Po zakończeniu działania funkcji właściwość zadania zostanie ustawiona Result tak, aby zwracała wartość wynikową funkcji.

state
Object

Obiekt reprezentujący dane, które mają być używane przez akcję.

Wyjątki

Argumentem function jest null.

Argumentem function jest null.

Uwagi

Zamiast wywoływać ten konstruktor, najczęstszym sposobem utworzenia wystąpienia Task<TResult> obiektu i uruchomienia zadania jest wywołanie metody statycznej TaskFactory<TResult>.StartNew(Func<Object,TResult>, Object) . Jedyną zaletą oferowaną przez ten konstruktor jest możliwość oddzielenia wystąpienia obiektu od wywołania zadania.

Zobacz też

Dotyczy

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

Inicjuje nową Task<TResult> z określoną funkcją.

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)

Parametry

function
Func<TResult>

Delegat reprezentujący kod do wykonania w zadaniu. Po zakończeniu działania funkcji właściwość zadania zostanie ustawiona Result tak, aby zwracała wartość wynikową funkcji.

cancellationToken
CancellationToken

Element CancellationToken do przypisania do tego zadania.

Wyjątki

Utworzony CancellationTokenSource element cancellationToken został już usunięty.

Argumentem function jest null.

Argumentem function jest null.

Uwagi

Zamiast wywoływać ten konstruktor, najczęstszym sposobem utworzenia wystąpienia Task<TResult> obiektu i uruchomienia zadania jest wywołanie metod statycznych Task.Run<TResult>(Func<TResult>, CancellationToken) i TaskFactory<TResult>.StartNew(Func<TResult>, CancellationToken) . Jedyną zaletą oferowaną przez ten konstruktor jest możliwość oddzielenia wystąpienia obiektu od wywołania zadania.

Zobacz też

Dotyczy

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

Inicjuje nową Task<TResult> z określoną funkcją i opcjami tworzenia.

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)

Parametry

function
Func<TResult>

Delegat reprezentujący kod do wykonania w zadaniu. Po zakończeniu działania funkcji właściwość zadania zostanie ustawiona Result tak, aby zwracała wartość wynikową funkcji.

creationOptions
TaskCreationOptions

Element TaskCreationOptions używany do dostosowywania zachowania zadania.

Wyjątki

Argument creationOptions określa nieprawidłową wartość dla elementu TaskCreationOptions.

Argumentem function jest null.

Argumentem function jest null.

Uwagi

Zamiast wywoływać ten konstruktor, najczęstszym sposobem utworzenia wystąpienia Task<TResult> obiektu i uruchomienia zadania jest wywołanie metody statycznej TaskFactory<TResult>.StartNew(Func<TResult>, TaskCreationOptions) . Jedyną zaletą oferowaną przez ten konstruktor jest możliwość oddzielenia wystąpienia obiektu od wywołania zadania.

Zobacz też

Dotyczy

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

Inicjuje nową Task<TResult> akcję, stan i opcje.

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)

Parametry

function
Func<Object,TResult>

Delegat reprezentujący kod do wykonania w zadaniu. Po zakończeniu działania funkcji właściwość zadania zostanie ustawiona Result tak, aby zwracała wartość wynikową funkcji.

state
Object

Obiekt reprezentujący dane, które mają być używane przez funkcję.

cancellationToken
CancellationToken

Element CancellationToken do przypisania do nowego zadania.

Wyjątki

Utworzony CancellationTokenSource element cancellationToken został już usunięty.

Argumentem function jest null.

Argumentem function jest null.

Uwagi

Zamiast wywoływać ten konstruktor, najczęstszym sposobem utworzenia wystąpienia Task<TResult> obiektu i uruchomienia zadania jest wywołanie metody statycznej TaskFactory<TResult>.StartNew(Func<Object,TResult>, Object, CancellationToken) . Jedyną zaletą oferowaną przez ten konstruktor jest możliwość oddzielenia wystąpienia obiektu od wywołania zadania.

Zobacz też

Dotyczy

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

Inicjuje nową Task<TResult> akcję, stan i opcje.

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)

Parametry

function
Func<Object,TResult>

Delegat reprezentujący kod do wykonania w zadaniu. Po zakończeniu działania funkcji właściwość zadania zostanie ustawiona Result tak, aby zwracała wartość wynikową funkcji.

state
Object

Obiekt reprezentujący dane, które mają być używane przez funkcję.

creationOptions
TaskCreationOptions

Element TaskCreationOptions używany do dostosowywania zachowania zadania.

Wyjątki

Argument creationOptions określa nieprawidłową wartość dla elementu TaskCreationOptions.

Argumentem function jest null.

Argumentem function jest null.

Uwagi

Zamiast wywoływać ten konstruktor, najczęstszym sposobem utworzenia wystąpienia Task<TResult> obiektu i uruchomienia zadania jest wywołanie metody statycznej TaskFactory<TResult>.StartNew(Func<Object,TResult>, Object, TaskCreationOptions) . Jedyną zaletą oferowaną przez ten konstruktor jest możliwość oddzielenia wystąpienia obiektu od wywołania zadania.

Zobacz też

Dotyczy

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

Inicjuje nową Task<TResult> z określoną funkcją i opcjami tworzenia.

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)

Parametry

function
Func<TResult>

Delegat reprezentujący kod do wykonania w zadaniu. Po zakończeniu działania funkcji właściwość zadania zostanie ustawiona Result tak, aby zwracała wartość wynikową funkcji.

cancellationToken
CancellationToken

Element CancellationToken , który zostanie przypisany do nowego zadania.

creationOptions
TaskCreationOptions

Element TaskCreationOptions używany do dostosowywania zachowania zadania.

Wyjątki

Utworzony CancellationTokenSource element cancellationToken został już usunięty.

Argument creationOptions określa nieprawidłową wartość dla elementu TaskCreationOptions.

Argumentem function jest null.

Argumentem function jest null.

Uwagi

Zamiast wywoływać ten konstruktor, najczęstszym sposobem utworzenia wystąpienia Task<TResult> obiektu i uruchomienia zadania jest wywołanie metody statycznej TaskFactory.StartNew<TResult>(Func<TResult>, CancellationToken, TaskCreationOptions, TaskScheduler) . Jedyną zaletą oferowaną przez ten konstruktor jest możliwość oddzielenia wystąpienia obiektu od wywołania zadania.

Zobacz też

Dotyczy

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

Inicjuje nową Task<TResult> akcję, stan i opcje.

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)

Parametry

function
Func<Object,TResult>

Delegat reprezentujący kod do wykonania w zadaniu. Po zakończeniu działania funkcji właściwość zadania zostanie ustawiona Result tak, aby zwracała wartość wynikową funkcji.

state
Object

Obiekt reprezentujący dane, które mają być używane przez funkcję.

cancellationToken
CancellationToken

Element CancellationToken do przypisania do nowego zadania.

creationOptions
TaskCreationOptions

Element TaskCreationOptions używany do dostosowywania zachowania zadania.

Wyjątki

Utworzony CancellationTokenSource element cancellationToken został już usunięty.

Argument creationOptions określa nieprawidłową wartość dla elementu TaskCreationOptions.

Argumentem function jest null.

Argumentem function jest null.

Uwagi

Zamiast wywoływać ten konstruktor, najczęstszym sposobem utworzenia wystąpienia Task<TResult> obiektu i uruchomienia zadania jest wywołanie metody statycznej TaskFactory<TResult>.StartNew(Func<Object,TResult>, Object, CancellationToken, TaskCreationOptions, TaskScheduler) . Jedyną zaletą oferowaną przez ten konstruktor jest możliwość oddzielenia wystąpienia obiektu od wywołania zadania.

Zobacz też

Dotyczy