Task<TResult> Oluşturucular

Tanım

Yeni Task<TResult> bir nesne başlatır.

Aşırı Yüklemeler

Task<TResult>(Func<TResult>)

Belirtilen işlevle yeni Task<TResult> bir başlatır.

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

Belirtilen işlev ve durumla yeni Task<TResult> bir başlatır.

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

Belirtilen işlevle yeni Task<TResult> bir başlatır.

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

Belirtilen işlev ve oluşturma seçenekleriyle yeni Task<TResult> bir başlatır.

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

Belirtilen eylem, durum ve seçeneklerle yeni Task<TResult> bir başlatır.

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

Belirtilen eylem, durum ve seçeneklerle yeni Task<TResult> bir başlatır.

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

Belirtilen işlev ve oluşturma seçenekleriyle yeni Task<TResult> bir başlatır.

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

Belirtilen eylem, durum ve seçeneklerle yeni Task<TResult> bir başlatır.

Task<TResult>(Func<TResult>)

Source:
Future.cs
Source:
Future.cs
Source:
Future.cs

Belirtilen işlevle yeni Task<TResult> bir başlatır.

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

Parametreler

function
Func<TResult>

Görevde yürütülecek kodu temsil eden temsilci. İşlev tamamlandığında, görevin Result özelliği işlevin sonuç değerini döndürecek şekilde ayarlanır.

Özel durumlar

bağımsız function değişkenidir null.

bağımsız function değişkenidir null.

Örnekler

Aşağıdaki örnek, yayımlanan kitapları temsil eden metin dosyalarındaki yaklaşık sözcük sayısını sayar. Her görev bir dosyayı açmak, içeriğinin tamamını zaman uyumsuz olarak okumak ve normal bir ifade kullanarak sözcük sayısını hesaplamakla sorumludur. Konsolda Task.WaitAll(Task[]) her kitabın sözcük sayısı görüntülenmeden önce tüm görevlerin tamamlandığından emin olmak için yöntemi çağrılır.

Nesne örnekleme, bu örnekte nesne yürütmeden ayrılmıştır, böylece örnek her dosyanın var olduğundan emin olabilir. Aksi takdirde, eksik dosyanın adını görüntüler. Aksi takdirde, her görevi başlatmak için yöntemini çağırır Task.Start .

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

Normal ifade deseni \p{P}*\s+ sıfır, bir veya daha fazla noktalama karakteri ve ardından bir veya daha fazla boşluk karakteriyle eşleşir. Toplam eşleşme sayısının yaklaşık sözcük sayısına eşit olduğunu varsayar.

Açıklamalar

Bu oluşturucu yalnızca görevin oluşturulması ve başlatılmasının ayrılmasının gerekli olduğu gelişmiş senaryolarda kullanılmalıdır.

Bu oluşturucuyu çağırmak yerine, bir nesnenin örneğini oluşturmanın ve bir Task<TResult> görevi başlatmanın en yaygın yolu statik Task.Run<TResult>(Func<TResult>) ve TaskFactory<TResult>.StartNew(Func<TResult>) yöntemleri çağırmaktır.

Yalnızca API tüketicisinin beklemesi gereken bir şeye sahip olması için eylem içermeyen bir görev gerekiyorsa, TaskCompletionSource<TResult> bir kullanılmalıdır.

Ayrıca bkz.

Şunlara uygulanır

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

Source:
Future.cs
Source:
Future.cs
Source:
Future.cs

Belirtilen işlev ve durumla yeni Task<TResult> bir başlatır.

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)

Parametreler

function
Func<Object,TResult>

Görevde yürütülecek kodu temsil eden temsilci. İşlev tamamlandığında, görevin Result özelliği işlevin sonuç değerini döndürecek şekilde ayarlanır.

state
Object

Eylem tarafından kullanılacak verileri temsil eden bir nesne.

Özel durumlar

bağımsız function değişkenidir null.

bağımsız function değişkenidir null.

Açıklamalar

Bu oluşturucuyu çağırmak yerine, bir Task<TResult> nesnenin örneğini oluşturmanın ve görevi başlatmanın en yaygın yolu statik TaskFactory<TResult>.StartNew(Func<Object,TResult>, Object) yöntemi çağırmaktır. Bu oluşturucu tarafından sunulan tek avantaj, nesne örneklemesinin görev çağırmasından ayrılmasına izin vermesidir.

Ayrıca bkz.

Şunlara uygulanır

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

Source:
Future.cs
Source:
Future.cs
Source:
Future.cs

Belirtilen işlevle yeni Task<TResult> bir başlatır.

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)

Parametreler

function
Func<TResult>

Görevde yürütülecek kodu temsil eden temsilci. İşlev tamamlandığında, görevin Result özelliği işlevin sonuç değerini döndürecek şekilde ayarlanır.

cancellationToken
CancellationToken

CancellationToken Bu göreve atanacak olan.

Özel durumlar

Oluşturulan CancellationTokenSourcecancellationToken zaten atılmış.

bağımsız function değişkenidir null.

bağımsız function değişkenidir null.

Açıklamalar

Bu oluşturucuyu çağırmak yerine, bir nesnenin örneğini oluşturmanın ve bir Task<TResult> görevi başlatmanın en yaygın yolu statik Task.Run<TResult>(Func<TResult>, CancellationToken) ve TaskFactory<TResult>.StartNew(Func<TResult>, CancellationToken) yöntemleri çağırmaktır. Bu oluşturucu tarafından sunulan tek avantaj, nesne örneklemesinin görev çağırmasından ayrılmasına izin vermesidir.

Ayrıca bkz.

Şunlara uygulanır

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

Source:
Future.cs
Source:
Future.cs
Source:
Future.cs

Belirtilen işlev ve oluşturma seçenekleriyle yeni Task<TResult> bir başlatır.

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)

Parametreler

function
Func<TResult>

Görevde yürütülecek kodu temsil eden temsilci. İşlev tamamlandığında, görevin Result özelliği işlevin sonuç değerini döndürecek şekilde ayarlanır.

creationOptions
TaskCreationOptions

görevin TaskCreationOptions davranışını özelleştirmek için kullanılır.

Özel durumlar

creationOptions bağımsız değişkeni için TaskCreationOptionsgeçersiz bir değer belirtir.

bağımsız function değişkenidir null.

bağımsız function değişkenidir null.

Açıklamalar

Bu oluşturucuyu çağırmak yerine, bir Task<TResult> nesnenin örneğini oluşturmanın ve görevi başlatmanın en yaygın yolu statik TaskFactory<TResult>.StartNew(Func<TResult>, TaskCreationOptions) yöntemi çağırmaktır. Bu oluşturucu tarafından sunulan tek avantaj, nesne örneklemesinin görev çağırmasından ayrılmasına izin vermesidir.

Ayrıca bkz.

Şunlara uygulanır

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

Source:
Future.cs
Source:
Future.cs
Source:
Future.cs

Belirtilen eylem, durum ve seçeneklerle yeni Task<TResult> bir başlatır.

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)

Parametreler

function
Func<Object,TResult>

Görevde yürütülecek kodu temsil eden temsilci. İşlev tamamlandığında, görevin Result özelliği işlevin sonuç değerini döndürecek şekilde ayarlanır.

state
Object

İşlev tarafından kullanılacak verileri temsil eden bir nesne.

cancellationToken
CancellationToken

CancellationToken Yeni göreve atanacak olan.

Özel durumlar

Oluşturulan CancellationTokenSourcecancellationToken zaten atılmış.

bağımsız function değişkenidir null.

bağımsız function değişkenidir null.

Açıklamalar

Bu oluşturucuyu çağırmak yerine, bir Task<TResult> nesnenin örneğini oluşturmanın ve görevi başlatmanın en yaygın yolu statik TaskFactory<TResult>.StartNew(Func<Object,TResult>, Object, CancellationToken) yöntemi çağırmaktır. Bu oluşturucu tarafından sunulan tek avantaj, nesne örneklemesinin görev çağırmasından ayrılmasına izin vermesidir.

Ayrıca bkz.

Şunlara uygulanır

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

Source:
Future.cs
Source:
Future.cs
Source:
Future.cs

Belirtilen eylem, durum ve seçeneklerle yeni Task<TResult> bir başlatır.

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)

Parametreler

function
Func<Object,TResult>

Görevde yürütülecek kodu temsil eden temsilci. İşlev tamamlandığında, görevin Result özelliği işlevin sonuç değerini döndürecek şekilde ayarlanır.

state
Object

İşlev tarafından kullanılacak verileri temsil eden bir nesne.

creationOptions
TaskCreationOptions

görevin TaskCreationOptions davranışını özelleştirmek için kullanılır.

Özel durumlar

creationOptions bağımsız değişkeni için TaskCreationOptionsgeçersiz bir değer belirtir.

bağımsız function değişkenidir null.

bağımsız function değişkenidir null.

Açıklamalar

Bu oluşturucuyu çağırmak yerine, bir Task<TResult> nesnenin örneğini oluşturmanın ve görevi başlatmanın en yaygın yolu statik TaskFactory<TResult>.StartNew(Func<Object,TResult>, Object, TaskCreationOptions) yöntemi çağırmaktır. Bu oluşturucu tarafından sunulan tek avantaj, nesne örneklemesinin görev çağırmasından ayrılmasına izin vermesidir.

Ayrıca bkz.

Şunlara uygulanır

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

Source:
Future.cs
Source:
Future.cs
Source:
Future.cs

Belirtilen işlev ve oluşturma seçenekleriyle yeni Task<TResult> bir başlatır.

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)

Parametreler

function
Func<TResult>

Görevde yürütülecek kodu temsil eden temsilci. İşlev tamamlandığında, görevin Result özelliği işlevin sonuç değerini döndürecek şekilde ayarlanır.

cancellationToken
CancellationToken

Yeni CancellationToken göreve atanacak olan.

creationOptions
TaskCreationOptions

görevin TaskCreationOptions davranışını özelleştirmek için kullanılır.

Özel durumlar

Oluşturulan CancellationTokenSourcecancellationToken zaten atılmış.

creationOptions bağımsız değişkeni için TaskCreationOptionsgeçersiz bir değer belirtir.

bağımsız function değişkenidir null.

bağımsız function değişkenidir null.

Açıklamalar

Bu oluşturucuyu çağırmak yerine, bir Task<TResult> nesnenin örneğini oluşturmanın ve görevi başlatmanın en yaygın yolu statik TaskFactory.StartNew<TResult>(Func<TResult>, CancellationToken, TaskCreationOptions, TaskScheduler) yöntemi çağırmaktır. Bu oluşturucu tarafından sunulan tek avantaj, nesne örneklemesinin görev çağırmasından ayrılmasına izin vermesidir.

Ayrıca bkz.

Şunlara uygulanır

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

Source:
Future.cs
Source:
Future.cs
Source:
Future.cs

Belirtilen eylem, durum ve seçeneklerle yeni Task<TResult> bir başlatır.

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)

Parametreler

function
Func<Object,TResult>

Görevde yürütülecek kodu temsil eden temsilci. İşlev tamamlandığında, görevin Result özelliği işlevin sonuç değerini döndürecek şekilde ayarlanır.

state
Object

İşlev tarafından kullanılacak verileri temsil eden bir nesne.

cancellationToken
CancellationToken

CancellationToken Yeni göreve atanacak olan.

creationOptions
TaskCreationOptions

görevin TaskCreationOptions davranışını özelleştirmek için kullanılır.

Özel durumlar

Oluşturulan CancellationTokenSourcecancellationToken zaten atılmış.

creationOptions bağımsız değişkeni için TaskCreationOptionsgeçersiz bir değer belirtir.

bağımsız function değişkenidir null.

bağımsız function değişkenidir null.

Açıklamalar

Bu oluşturucuyu çağırmak yerine, bir Task<TResult> nesnenin örneğini oluşturmanın ve görevi başlatmanın en yaygın yolu statik TaskFactory<TResult>.StartNew(Func<Object,TResult>, Object, CancellationToken, TaskCreationOptions, TaskScheduler) yöntemi çağırmaktır. Bu oluşturucu tarafından sunulan tek avantaj, nesne örneklemesinin görev çağırmasından ayrılmasına izin vermesidir.

Ayrıca bkz.

Şunlara uygulanır