Bahasa

Task<TResult> Konstruktor

Definisi

Menginisialisasi objek baru Task<TResult> .

Overload

Nama Deskripsi
Task<TResult>(Func<TResult>)

Menginisialisasi baru Task<TResult> dengan fungsi yang ditentukan.

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

Menginisialisasi baru Task<TResult> dengan fungsi dan status yang ditentukan.

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

Menginisialisasi baru Task<TResult> dengan fungsi yang ditentukan.

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

Menginisialisasi baru Task<TResult> dengan fungsi dan opsi pembuatan yang ditentukan.

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

Menginisialisasi baru Task<TResult> dengan tindakan, status, dan opsi yang ditentukan.

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

Menginisialisasi baru Task<TResult> dengan tindakan, status, dan opsi yang ditentukan.

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

Menginisialisasi baru Task<TResult> dengan fungsi dan opsi pembuatan yang ditentukan.

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

Menginisialisasi baru Task<TResult> dengan tindakan, status, dan opsi yang ditentukan.

Task<TResult>(Func<TResult>)

Sumber:
Future.cs
Sumber:
Task_T.cs
Sumber:
Future.cs
Sumber:
Future.cs
Sumber:
Future.cs

Menginisialisasi baru Task<TResult> dengan fungsi yang ditentukan.

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

Parameter

function
Func<TResult>

Delegasi yang mewakili kode untuk dijalankan dalam tugas. Setelah fungsi selesai, properti tugas Result akan diatur untuk mengembalikan nilai hasil fungsi.

Pengecualian

Argumennya function adalah null.

Argumennya function adalah null.

Contoh

Contoh berikut menghitung perkiraan jumlah kata dalam file teks yang mewakili buku yang diterbitkan. Setiap tugas bertanggung jawab untuk membuka file, membaca seluruh kontennya secara asinkron, dan menghitung jumlah kata dengan menggunakan ekspresi reguler. Metode Task.WaitAll(Task[]) ini dipanggil untuk memastikan bahwa semua tugas telah selesai sebelum menampilkan jumlah kata setiap buku ke konsol.

Instansiasi objek dipisahkan dari eksekusi objek dalam contoh ini sehingga contoh dapat memastikan bahwa setiap file ada. Jika tidak, file akan menampilkan nama file yang hilang. Jika tidak, ini memanggil Task.Start metode untuk meluncurkan setiap tugas.

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

Pola \p{P}*\s+ ekspresi reguler cocok dengan nol, satu, atau beberapa karakter tanda baca diikuti oleh satu atau beberapa karakter spasi putih. Ini mengasumsikan bahwa jumlah total kecocokan sama dengan perkiraan jumlah kata.

Keterangan

Konstruktor ini hanya boleh digunakan dalam skenario lanjutan di mana diperlukan bahwa pembuatan dan awal tugas dipisahkan.

Daripada memanggil konstruktor ini, cara paling umum untuk membuat Task<TResult> instans objek dan meluncurkan tugas adalah dengan memanggil statis Task.Run<TResult>(Func<TResult>) dan TaskFactory<TResult>.StartNew(Func<TResult>) metode.

Jika tugas tanpa tindakan diperlukan hanya agar konsumen API memiliki sesuatu untuk ditunggu, harus TaskCompletionSource<TResult> digunakan.

Lihat juga

Berlaku untuk

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

Sumber:
Future.cs
Sumber:
Task_T.cs
Sumber:
Future.cs
Sumber:
Future.cs
Sumber:
Future.cs

Menginisialisasi baru Task<TResult> dengan fungsi dan status yang ditentukan.

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)

Parameter

function
Func<Object,TResult>

Delegasi yang mewakili kode untuk dijalankan dalam tugas. Setelah fungsi selesai, properti tugas Result akan diatur untuk mengembalikan nilai hasil fungsi.

state
Object

Objek yang mewakili data yang akan digunakan oleh tindakan.

Pengecualian

Argumennya function adalah null.

Argumennya function adalah null.

Keterangan

Daripada memanggil konstruktor ini, cara paling umum untuk membuat Task<TResult> instans objek dan meluncurkan tugas adalah dengan memanggil metode statis TaskFactory<TResult>.StartNew(Func<Object,TResult>, Object) . Satu-satunya keuntungan yang ditawarkan oleh konstruktor ini adalah memungkinkan instansiasi objek dipisahkan dari pemanggilan tugas.

Lihat juga

Berlaku untuk

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

Sumber:
Future.cs
Sumber:
Task_T.cs
Sumber:
Future.cs
Sumber:
Future.cs
Sumber:
Future.cs

Menginisialisasi baru Task<TResult> dengan fungsi yang ditentukan.

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)

Parameter

function
Func<TResult>

Delegasi yang mewakili kode untuk dijalankan dalam tugas. Setelah fungsi selesai, properti tugas Result akan diatur untuk mengembalikan nilai hasil fungsi.

cancellationToken
CancellationToken

yang CancellationToken akan ditetapkan ke tugas ini.

Pengecualian

Yang CancellationTokenSource dibuat cancellationToken telah dibuang.

Argumennya function adalah null.

Argumennya function adalah null.

Keterangan

Daripada memanggil konstruktor ini, cara paling umum untuk membuat Task<TResult> instans objek dan meluncurkan tugas adalah dengan memanggil statis Task.Run<TResult>(Func<TResult>, CancellationToken) dan TaskFactory<TResult>.StartNew(Func<TResult>, CancellationToken) metode. Satu-satunya keuntungan yang ditawarkan oleh konstruktor ini adalah memungkinkan instansiasi objek dipisahkan dari pemanggilan tugas.

Lihat juga

Berlaku untuk

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

Sumber:
Future.cs
Sumber:
Task_T.cs
Sumber:
Future.cs
Sumber:
Future.cs
Sumber:
Future.cs

Menginisialisasi baru Task<TResult> dengan fungsi dan opsi pembuatan yang ditentukan.

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)

Parameter

function
Func<TResult>

Delegasi yang mewakili kode untuk dijalankan dalam tugas. Setelah fungsi selesai, properti tugas Result akan diatur untuk mengembalikan nilai hasil fungsi.

creationOptions
TaskCreationOptions

yang TaskCreationOptions digunakan untuk menyesuaikan perilaku tugas.

Pengecualian

Argumen creationOptions menentukan nilai yang tidak valid untuk TaskCreationOptions.

Argumennya function adalah null.

Argumennya function adalah null.

Keterangan

Daripada memanggil konstruktor ini, cara paling umum untuk membuat Task<TResult> instans objek dan meluncurkan tugas adalah dengan memanggil metode statis TaskFactory<TResult>.StartNew(Func<TResult>, TaskCreationOptions) . Satu-satunya keuntungan yang ditawarkan oleh konstruktor ini adalah memungkinkan instansiasi objek dipisahkan dari pemanggilan tugas.

Lihat juga

Berlaku untuk

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

Sumber:
Future.cs
Sumber:
Task_T.cs
Sumber:
Future.cs
Sumber:
Future.cs
Sumber:
Future.cs

Menginisialisasi baru Task<TResult> dengan tindakan, status, dan opsi yang ditentukan.

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)

Parameter

function
Func<Object,TResult>

Delegasi yang mewakili kode untuk dijalankan dalam tugas. Setelah fungsi selesai, properti tugas Result akan diatur untuk mengembalikan nilai hasil fungsi.

state
Object

Objek yang mewakili data yang akan digunakan oleh fungsi .

cancellationToken
CancellationToken

yang CancellationToken akan ditetapkan ke tugas baru.

Pengecualian

Yang CancellationTokenSource dibuat cancellationToken telah dibuang.

Argumennya function adalah null.

Argumennya function adalah null.

Keterangan

Daripada memanggil konstruktor ini, cara paling umum untuk membuat Task<TResult> instans objek dan meluncurkan tugas adalah dengan memanggil metode statis TaskFactory<TResult>.StartNew(Func<Object,TResult>, Object, CancellationToken) . Satu-satunya keuntungan yang ditawarkan oleh konstruktor ini adalah memungkinkan instansiasi objek dipisahkan dari pemanggilan tugas.

Lihat juga

Berlaku untuk

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

Sumber:
Future.cs
Sumber:
Task_T.cs
Sumber:
Future.cs
Sumber:
Future.cs
Sumber:
Future.cs

Menginisialisasi baru Task<TResult> dengan tindakan, status, dan opsi yang ditentukan.

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)

Parameter

function
Func<Object,TResult>

Delegasi yang mewakili kode untuk dijalankan dalam tugas. Setelah fungsi selesai, properti tugas Result akan diatur untuk mengembalikan nilai hasil fungsi.

state
Object

Objek yang mewakili data yang akan digunakan oleh fungsi .

creationOptions
TaskCreationOptions

yang TaskCreationOptions digunakan untuk menyesuaikan perilaku tugas.

Pengecualian

Argumen creationOptions menentukan nilai yang tidak valid untuk TaskCreationOptions.

Argumennya function adalah null.

Argumennya function adalah null.

Keterangan

Daripada memanggil konstruktor ini, cara paling umum untuk membuat Task<TResult> instans objek dan meluncurkan tugas adalah dengan memanggil metode statis TaskFactory<TResult>.StartNew(Func<Object,TResult>, Object, TaskCreationOptions) . Satu-satunya keuntungan yang ditawarkan oleh konstruktor ini adalah memungkinkan instansiasi objek dipisahkan dari pemanggilan tugas.

Lihat juga

Berlaku untuk

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

Sumber:
Future.cs
Sumber:
Task_T.cs
Sumber:
Future.cs
Sumber:
Future.cs
Sumber:
Future.cs

Menginisialisasi baru Task<TResult> dengan fungsi dan opsi pembuatan yang ditentukan.

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)

Parameter

function
Func<TResult>

Delegasi yang mewakili kode untuk dijalankan dalam tugas. Setelah fungsi selesai, properti tugas Result akan diatur untuk mengembalikan nilai hasil fungsi.

cancellationToken
CancellationToken

Yang CancellationToken akan ditetapkan ke tugas baru.

creationOptions
TaskCreationOptions

yang TaskCreationOptions digunakan untuk menyesuaikan perilaku tugas.

Pengecualian

Yang CancellationTokenSource dibuat cancellationToken telah dibuang.

Argumen creationOptions menentukan nilai yang tidak valid untuk TaskCreationOptions.

Argumennya function adalah null.

Argumennya function adalah null.

Keterangan

Daripada memanggil konstruktor ini, cara paling umum untuk membuat Task<TResult> instans objek dan meluncurkan tugas adalah dengan memanggil metode statis TaskFactory.StartNew<TResult>(Func<TResult>, CancellationToken, TaskCreationOptions, TaskScheduler) . Satu-satunya keuntungan yang ditawarkan oleh konstruktor ini adalah memungkinkan instansiasi objek dipisahkan dari pemanggilan tugas.

Lihat juga

Berlaku untuk

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

Sumber:
Future.cs
Sumber:
Task_T.cs
Sumber:
Future.cs
Sumber:
Future.cs
Sumber:
Future.cs

Menginisialisasi baru Task<TResult> dengan tindakan, status, dan opsi yang ditentukan.

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)

Parameter

function
Func<Object,TResult>

Delegasi yang mewakili kode untuk dijalankan dalam tugas. Setelah fungsi selesai, properti tugas Result akan diatur untuk mengembalikan nilai hasil fungsi.

state
Object

Objek yang mewakili data yang akan digunakan oleh fungsi .

cancellationToken
CancellationToken

yang CancellationToken akan ditetapkan ke tugas baru.

creationOptions
TaskCreationOptions

yang TaskCreationOptions digunakan untuk menyesuaikan perilaku tugas.

Pengecualian

Yang CancellationTokenSource dibuat cancellationToken telah dibuang.

Argumen creationOptions menentukan nilai yang tidak valid untuk TaskCreationOptions.

Argumennya function adalah null.

Argumennya function adalah null.

Keterangan

Daripada memanggil konstruktor ini, cara paling umum untuk membuat Task<TResult> instans objek dan meluncurkan tugas adalah dengan memanggil metode statis TaskFactory<TResult>.StartNew(Func<Object,TResult>, Object, CancellationToken, TaskCreationOptions, TaskScheduler) . Satu-satunya keuntungan yang ditawarkan oleh konstruktor ini adalah memungkinkan instansiasi objek dipisahkan dari pemanggilan tugas.

Lihat juga

Berlaku untuk