Task<TResult> Konstruktor
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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
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
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
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
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.