Task.WaitAny Metode
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.
Menunggu salah satu objek yang disediakan Task untuk menyelesaikan eksekusi.
Overload
WaitAny(Task[], TimeSpan) |
Menunggu salah satu objek yang disediakan Task untuk menyelesaikan eksekusi dalam interval waktu yang ditentukan. |
WaitAny(Task[], Int32, CancellationToken) |
Menunggu salah satu objek yang disediakan Task untuk menyelesaikan eksekusi dalam jumlah milidetik tertentu atau sampai token pembatalan dibatalkan. |
WaitAny(Task[], Int32) |
Menunggu salah satu objek yang disediakan Task untuk menyelesaikan eksekusi dalam jumlah milidetik tertentu. |
WaitAny(Task[], CancellationToken) |
Menunggu salah satu objek yang disediakan Task untuk menyelesaikan eksekusi kecuali tunggu dibatalkan. |
WaitAny(Task[]) |
Menunggu salah satu objek yang disediakan Task untuk menyelesaikan eksekusi. |
WaitAny(Task[], TimeSpan)
- Sumber:
- Task.cs
- Sumber:
- Task.cs
- Sumber:
- Task.cs
Menunggu salah satu objek yang disediakan Task untuk menyelesaikan eksekusi dalam interval waktu yang ditentukan.
public:
static int WaitAny(cli::array <System::Threading::Tasks::Task ^> ^ tasks, TimeSpan timeout);
public static int WaitAny (System.Threading.Tasks.Task[] tasks, TimeSpan timeout);
static member WaitAny : System.Threading.Tasks.Task[] * TimeSpan -> int
Public Shared Function WaitAny (tasks As Task(), timeout As TimeSpan) As Integer
Parameter
- timeout
- TimeSpan
TimeSpan yang mewakili jumlah milidetik untuk menunggu, atau TimeSpan yang mewakili -1 milidetik untuk menunggu tanpa batas waktu.
Mengembalikan
Indeks tugas yang diselesaikan dalam tasks
argumen array, atau -1 jika waktu habis terjadi.
Pengecualian
Sudah Task dibuang.
Argumennya tasks
adalah null
.
Properti TotalMilliseconds argumen timeout
adalah angka negatif selain -1, yang menunjukkan batas waktu tak terbatas.
-atau-
Properti TotalMillisecondstimeout
argumen lebih besar dari Int32.MaxValue.
Argumen tasks
berisi elemen null.
Berlaku untuk
WaitAny(Task[], Int32, CancellationToken)
- Sumber:
- Task.cs
- Sumber:
- Task.cs
- Sumber:
- Task.cs
Menunggu salah satu objek yang disediakan Task untuk menyelesaikan eksekusi dalam jumlah milidetik tertentu atau sampai token pembatalan dibatalkan.
public:
static int WaitAny(cli::array <System::Threading::Tasks::Task ^> ^ tasks, int millisecondsTimeout, System::Threading::CancellationToken cancellationToken);
public static int WaitAny (System.Threading.Tasks.Task[] tasks, int millisecondsTimeout, System.Threading.CancellationToken cancellationToken);
static member WaitAny : System.Threading.Tasks.Task[] * int * System.Threading.CancellationToken -> int
Public Shared Function WaitAny (tasks As Task(), millisecondsTimeout As Integer, cancellationToken As CancellationToken) As Integer
Parameter
- millisecondsTimeout
- Int32
Jumlah milidetik untuk menunggu, atau Infinite (-1) untuk menunggu tanpa batas waktu.
- cancellationToken
- CancellationToken
untuk CancellationToken mengamati sambil menunggu tugas selesai.
Mengembalikan
Indeks tugas yang diselesaikan dalam tasks
argumen array, atau -1 jika waktu habis terjadi.
Pengecualian
Sudah Task dibuang.
Argumennya tasks
adalah null
.
millisecondsTimeout
adalah angka negatif selain -1, yang mewakili waktu habis yang tak terbatas.
Argumen tasks
berisi elemen null.
Dibatalkan cancellationToken
.
Berlaku untuk
WaitAny(Task[], Int32)
- Sumber:
- Task.cs
- Sumber:
- Task.cs
- Sumber:
- Task.cs
Menunggu salah satu objek yang disediakan Task untuk menyelesaikan eksekusi dalam jumlah milidetik tertentu.
public:
static int WaitAny(cli::array <System::Threading::Tasks::Task ^> ^ tasks, int millisecondsTimeout);
public static int WaitAny (System.Threading.Tasks.Task[] tasks, int millisecondsTimeout);
static member WaitAny : System.Threading.Tasks.Task[] * int -> int
Public Shared Function WaitAny (tasks As Task(), millisecondsTimeout As Integer) As Integer
Parameter
- millisecondsTimeout
- Int32
Jumlah milidetik untuk menunggu, atau Infinite (-1) untuk menunggu tanpa batas waktu.
Mengembalikan
Indeks tugas yang diselesaikan dalam tasks
argumen array, atau -1 jika waktu habis terjadi.
Pengecualian
Sudah Task dibuang.
Argumennya tasks
adalah null
.
millisecondsTimeout
adalah angka negatif selain -1, yang mewakili waktu habis yang tak terbatas.
Argumen tasks
berisi elemen null.
Berlaku untuk
WaitAny(Task[], CancellationToken)
- Sumber:
- Task.cs
- Sumber:
- Task.cs
- Sumber:
- Task.cs
Menunggu salah satu objek yang disediakan Task untuk menyelesaikan eksekusi kecuali tunggu dibatalkan.
public:
static int WaitAny(cli::array <System::Threading::Tasks::Task ^> ^ tasks, System::Threading::CancellationToken cancellationToken);
public static int WaitAny (System.Threading.Tasks.Task[] tasks, System.Threading.CancellationToken cancellationToken);
static member WaitAny : System.Threading.Tasks.Task[] * System.Threading.CancellationToken -> int
Public Shared Function WaitAny (tasks As Task(), cancellationToken As CancellationToken) As Integer
Parameter
- cancellationToken
- CancellationToken
untuk CancellationToken mengamati sambil menunggu tugas selesai.
Mengembalikan
Indeks tugas yang selesai dalam tasks
argumen array.
Pengecualian
Sudah Task dibuang.
Argumennya tasks
adalah null
.
Argumen tasks
berisi elemen null.
Dibatalkan cancellationToken
.
Berlaku untuk
WaitAny(Task[])
- Sumber:
- Task.cs
- Sumber:
- Task.cs
- Sumber:
- Task.cs
Menunggu salah satu objek yang disediakan Task untuk menyelesaikan eksekusi.
public:
static int WaitAny(... cli::array <System::Threading::Tasks::Task ^> ^ tasks);
public static int WaitAny (params System.Threading.Tasks.Task[] tasks);
static member WaitAny : System.Threading.Tasks.Task[] -> int
Public Shared Function WaitAny (ParamArray tasks As Task()) As Integer
Parameter
Mengembalikan
Indeks objek yang telah selesai Task dalam tasks
array.
Pengecualian
Sudah Task dibuang.
Argumennya tasks
adalah null
.
Argumen tasks
berisi elemen null.
Contoh
Contoh berikut meluncurkan lima tugas, yang masing-masing tidur selama minimal 50 milidetik atau maksimum 1.050 milidetik. Metode ini WaitAny kemudian menunggu salah satu tugas selesai. Contoh menampilkan ID tugas tugas yang mengakhiri penantian, serta status saat ini dari semua tugas.
using System;
using System.Threading;
using System.Threading.Tasks;
public class Example
{
public static void Main()
{
Task[] tasks = new Task[5];
for (int ctr = 0; ctr <= 4; ctr++) {
int factor = ctr;
tasks[ctr] = Task.Run(() => Thread.Sleep(factor * 250 + 50));
}
int index = Task.WaitAny(tasks);
Console.WriteLine("Wait ended because task #{0} completed.",
tasks[index].Id);
Console.WriteLine("\nCurrent Status of Tasks:");
foreach (var t in tasks)
Console.WriteLine(" Task {0}: {1}", t.Id, t.Status);
}
}
// The example displays output like the following:
// Wait ended because task #1 completed.
//
// Current Status of Tasks:
// Task 1: RanToCompletion
// Task 2: Running
// Task 3: Running
// Task 4: Running
// Task 5: Running
open System.Threading
open System.Threading.Tasks
let tasks =
[| for factor = 0 to 4 do
Task.Run(fun () -> Thread.Sleep(factor * 250 + 50)) |]
let index = Task.WaitAny tasks
printfn $"Wait ended because task #{tasks[index].Id} completed."
printfn "\nCurrent Status of Tasks:"
for t in tasks do
printfn $" Task {t.Id}: {t.Status}"
// The example displays output like the following:
// Wait ended because task #1 completed.
//
// Current Status of Tasks:
// Task 1: RanToCompletion
// Task 2: Running
// Task 3: Running
// Task 4: Running
// Task 5: Running
Imports System.Threading
Imports System.Threading.Tasks
Module Example
Public Sub Main()
Dim tasks(4) As Task
For ctr As Integer = 0 To 4
Dim factor As Integer = ctr
tasks(ctr) = Task.Run(Sub() Thread.Sleep(factor * 250 + 50))
Next
Dim index As Integer = Task.WaitAny(tasks)
Console.WriteLine("Wait ended because task #{0} completed.",
tasks(index).Id)
Console.WriteLine()
Console.WriteLine("Current Status of Tasks:")
For Each t In tasks
Console.WriteLine(" Task {0}: {1}", t.Id, t.Status)
Next
End Sub
End Module
' The example displays output like the following:
' Wait ended because task #1 completed.
'
' Current Status of Tasks:
' Task 1: RanToCompletion
' Task 2: Running
' Task 3: Running
' Task 4: Running
' Task 5: Running