Bagikan melalui


Task.WaitAny Metode

Definisi

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

tasks
Task[]

Array Task instans untuk menunggu.

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

tasks
Task[]

Array Task instans untuk menunggu.

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

tasks
Task[]

Array Task instans untuk menunggu.

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

tasks
Task[]

Array Task instans untuk menunggu.

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

tasks
Task[]

Array Task instans untuk menunggu.

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

Berlaku untuk