Task.WaitAny Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Čeká na dokončení provádění některého z poskytnutých Task objektů.
Přetížení
| Name | Description |
|---|---|
| WaitAny(Task[], TimeSpan) |
Čeká na dokončení provádění některého z poskytnutých Task objektů v zadaném časovém intervalu. |
| WaitAny(Task[], Int32, CancellationToken) |
Čeká na dokončení provádění některého z poskytnutých Task objektů v zadaném počtu milisekund nebo do zrušení tokenu zrušení. |
| WaitAny(Task[], Int32) |
Čeká na dokončení provádění některého z poskytnutých Task objektů v zadaném počtu milisekund. |
| WaitAny(Task[], CancellationToken) |
Čeká na dokončení provádění některého z poskytnutých Task objektů, pokud se čekání nezruší. |
| WaitAny(Task[]) |
Čeká na dokončení provádění některého z poskytnutých Task objektů. |
WaitAny(Task[], TimeSpan)
- Zdroj:
- Task.cs
- Zdroj:
- Task.cs
- Zdroj:
- Task.cs
- Zdroj:
- Task.cs
- Zdroj:
- Task.cs
Čeká na dokončení provádění některého z poskytnutých Task objektů v zadaném časovém intervalu.
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
Parametry
- timeout
- TimeSpan
Jedná TimeSpan se o počet milisekund, které se mají čekat, nebo TimeSpan počet milisekund, které představují -1 milisekundy, které se mají čekat neomezeně dlouho.
Návraty
Index dokončeného úkolu v argumentu tasks pole nebo -1, pokud došlo k vypršení časového limitu.
Výjimky
Byl Task odstraněn.
Argument tasks je null.
Vlastnost TotalMilliseconds argumentu timeout je záporné číslo jiné než -1, což představuje nekonečný časový limit.
nebo
Vlastnost TotalMilliseconds argumentu timeout je větší než Int32.MaxValue.
Argument tasks obsahuje prvek null.
Platí pro
WaitAny(Task[], Int32, CancellationToken)
- Zdroj:
- Task.cs
- Zdroj:
- Task.cs
- Zdroj:
- Task.cs
- Zdroj:
- Task.cs
- Zdroj:
- Task.cs
Čeká na dokončení provádění některého z poskytnutých Task objektů v zadaném počtu milisekund nebo do zrušení tokenu zrušení.
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
Parametry
- millisecondsTimeout
- Int32
Počet milisekund, které se mají počkat, nebo Infinite (-1) čekat na neomezenou dobu.
- cancellationToken
- CancellationToken
A CancellationToken , která se má sledovat při čekání na dokončení úkolu.
Návraty
Index dokončeného úkolu v argumentu tasks pole nebo -1, pokud došlo k vypršení časového limitu.
Výjimky
Byl Task odstraněn.
Argument tasks je null.
millisecondsTimeout je záporné číslo jiné než -1, což představuje nekonečný časový limit.
Argument tasks obsahuje prvek null.
Zrušili jsme ho cancellationToken .
Platí pro
WaitAny(Task[], Int32)
- Zdroj:
- Task.cs
- Zdroj:
- Task.cs
- Zdroj:
- Task.cs
- Zdroj:
- Task.cs
- Zdroj:
- Task.cs
Čeká na dokončení provádění některého z poskytnutých Task objektů v zadaném počtu milisekund.
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
Parametry
- millisecondsTimeout
- Int32
Počet milisekund, které se mají počkat, nebo Infinite (-1) čekat na neomezenou dobu.
Návraty
Index dokončeného úkolu v argumentu tasks pole nebo -1, pokud došlo k vypršení časového limitu.
Výjimky
Byl Task odstraněn.
Argument tasks je null.
millisecondsTimeout je záporné číslo jiné než -1, což představuje nekonečný časový limit.
Argument tasks obsahuje prvek null.
Platí pro
WaitAny(Task[], CancellationToken)
- Zdroj:
- Task.cs
- Zdroj:
- Task.cs
- Zdroj:
- Task.cs
- Zdroj:
- Task.cs
- Zdroj:
- Task.cs
Čeká na dokončení provádění některého z poskytnutých Task objektů, pokud se čekání nezruší.
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
Parametry
- cancellationToken
- CancellationToken
A CancellationToken , která se má sledovat při čekání na dokončení úkolu.
Návraty
Index dokončeného úkolu v argumentu tasks pole.
Výjimky
Byl Task odstraněn.
Argument tasks je null.
Argument tasks obsahuje prvek null.
Zrušili jsme ho cancellationToken .
Platí pro
WaitAny(Task[])
- Zdroj:
- Task.cs
- Zdroj:
- Task.cs
- Zdroj:
- Task.cs
- Zdroj:
- Task.cs
- Zdroj:
- Task.cs
Čeká na dokončení provádění některého z poskytnutých Task objektů.
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
Parametry
Návraty
Index dokončeného Task objektu tasks v poli.
Výjimky
Byl Task odstraněn.
Argument tasks je null.
Argument tasks obsahuje prvek null.
Příklady
Následující příklad spustí pět úkolů, z nichž každý spí minimálně 50 milisekund nebo maximálně 1 050 milisekund. Metoda WaitAny pak čeká na dokončení některého z úkolů. V příkladu se zobrazí ID úkolu, který ukončil čekání, a také aktuální stav všech úkolů.
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