Task.WaitAny Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Wartet auf den Abschluss der Ausführung der bereitgestellten Task Objekte.
Überlädt
| Name | Beschreibung |
|---|---|
| WaitAny(Task[], TimeSpan) |
Wartet auf eine der bereitgestellten Task Objekte, um die Ausführung innerhalb eines angegebenen Zeitintervalls abzuschließen. |
| WaitAny(Task[], Int32, CancellationToken) |
Wartet auf eine der bereitgestellten Task Objekte, bis die Ausführung innerhalb einer bestimmten Anzahl von Millisekunden abgeschlossen wurde oder bis ein Abbruchtoken abgebrochen wird. |
| WaitAny(Task[], Int32) |
Wartet auf eine der bereitgestellten Task Objekte, um die Ausführung innerhalb einer bestimmten Anzahl von Millisekunden abzuschließen. |
| WaitAny(Task[], CancellationToken) |
Wartet auf eine der bereitgestellten Task Objekte, bis die Ausführung abgeschlossen ist, es sei denn, die Wartezeit wird abgebrochen. |
| WaitAny(Task[]) |
Wartet auf den Abschluss der Ausführung der bereitgestellten Task Objekte. |
WaitAny(Task[], TimeSpan)
- Quelle:
- Task.cs
- Quelle:
- Task.cs
- Quelle:
- Task.cs
- Quelle:
- Task.cs
- Quelle:
- Task.cs
Wartet auf eine der bereitgestellten Task Objekte, um die Ausführung innerhalb eines angegebenen Zeitintervalls abzuschließen.
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
Ein TimeSpan Wert, der die Anzahl der zu wartenden Millisekunden darstellt, oder eine TimeSpan , die -1 Millisekunden darstellt, die unbegrenzt gewartet werden sollen.
Gibt zurück
Der Index der abgeschlossenen Aufgabe im tasks Array-Argument oder -1, wenn das Timeout aufgetreten ist.
Ausnahmen
Dies Task wurde gelöscht.
Das tasks Argument ist null.
Die TotalMilliseconds Eigenschaft des timeout Arguments ist eine andere negative Zahl als -1, die ein unendliches Timeout darstellt.
-oder-
Die TotalMilliseconds Eigenschaft des timeout Arguments ist größer als Int32.MaxValue.
Das tasks Argument enthält ein NULL-Element.
Gilt für:
WaitAny(Task[], Int32, CancellationToken)
- Quelle:
- Task.cs
- Quelle:
- Task.cs
- Quelle:
- Task.cs
- Quelle:
- Task.cs
- Quelle:
- Task.cs
Wartet auf eine der bereitgestellten Task Objekte, bis die Ausführung innerhalb einer bestimmten Anzahl von Millisekunden abgeschlossen wurde oder bis ein Abbruchtoken abgebrochen wird.
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
Die Anzahl der zu wartenden Millisekunden oder Infinite (-1) auf unbestimmte Zeit.
- cancellationToken
- CancellationToken
A CancellationToken , das beim Warten auf den Abschluss einer Aufgabe zu beobachten ist.
Gibt zurück
Der Index der abgeschlossenen Aufgabe im tasks Array-Argument oder -1, wenn das Timeout aufgetreten ist.
Ausnahmen
Dies Task wurde gelöscht.
Das tasks Argument ist null.
millisecondsTimeout ist eine andere negative Zahl als -1, die ein unendliches Timeout darstellt.
Das tasks Argument enthält ein NULL-Element.
Das cancellationToken wurde abgebrochen.
Gilt für:
WaitAny(Task[], Int32)
- Quelle:
- Task.cs
- Quelle:
- Task.cs
- Quelle:
- Task.cs
- Quelle:
- Task.cs
- Quelle:
- Task.cs
Wartet auf eine der bereitgestellten Task Objekte, um die Ausführung innerhalb einer bestimmten Anzahl von Millisekunden abzuschließen.
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
Die Anzahl der zu wartenden Millisekunden oder Infinite (-1) auf unbestimmte Zeit.
Gibt zurück
Der Index der abgeschlossenen Aufgabe im tasks Array-Argument oder -1, wenn das Timeout aufgetreten ist.
Ausnahmen
Dies Task wurde gelöscht.
Das tasks Argument ist null.
millisecondsTimeout ist eine andere negative Zahl als -1, die ein unendliches Timeout darstellt.
Das tasks Argument enthält ein NULL-Element.
Gilt für:
WaitAny(Task[], CancellationToken)
- Quelle:
- Task.cs
- Quelle:
- Task.cs
- Quelle:
- Task.cs
- Quelle:
- Task.cs
- Quelle:
- Task.cs
Wartet auf eine der bereitgestellten Task Objekte, bis die Ausführung abgeschlossen ist, es sei denn, die Wartezeit wird abgebrochen.
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
A CancellationToken , das beim Warten auf den Abschluss einer Aufgabe zu beobachten ist.
Gibt zurück
Der Index der abgeschlossenen Aufgabe im tasks Array-Argument.
Ausnahmen
Dies Task wurde gelöscht.
Das tasks Argument ist null.
Das tasks Argument enthält ein NULL-Element.
Das cancellationToken wurde abgebrochen.
Gilt für:
WaitAny(Task[])
- Quelle:
- Task.cs
- Quelle:
- Task.cs
- Quelle:
- Task.cs
- Quelle:
- Task.cs
- Quelle:
- Task.cs
Wartet auf den Abschluss der Ausführung der bereitgestellten Task Objekte.
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
Gibt zurück
Der Index des abgeschlossenen Task Objekts im tasks Array.
Ausnahmen
Dies Task wurde gelöscht.
Das tasks Argument ist null.
Das tasks Argument enthält ein NULL-Element.
Beispiele
Im folgenden Beispiel werden fünf Vorgänge gestartet, die jeweils für mindestens 50 Millisekunden oder maximal 1.050 Millisekunden schlafen. Die WaitAny Methode wartet dann auf den Abschluss einer der Aufgaben. Im Beispiel wird die Vorgangs-ID des Vorgangs angezeigt, der die Wartezeit beendet hat, sowie den aktuellen Status aller Vorgänge.
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