Auf Englisch lesen

Freigeben über


Task.WaitAny Methode

Definition

Wartet, bis eines der bereitgestellten Task-Objekte die Ausführung abschließt.

Überlädt

WaitAny(Task[], TimeSpan)

Wartet darauf, dass bereitgestellte Task-Objekte, die abgebrochen werden können, innerhalb eines angegebenen Zeitintervalls vollständig ausgeführt werden.

WaitAny(Task[], Int32, CancellationToken)

Wartet darauf, dass bereitgestellte Task-Objekte innerhalb einer angegebenen Anzahl an Millisekunden oder vollständig ausgeführt werden, oder bis ein Abbruchtoken abgebrochen wird.

WaitAny(Task[], Int32)

Wartet darauf, dass bereitgestellte Task-Objekte innerhalb einer angegebenen Anzahl an Millisekunden vollständig ausgeführt werden.

WaitAny(Task[], CancellationToken)

Wartet, bis bereitgestellte Task-Objekte die Ausführung abschließen oder bis der Wartevorgang abgebrochen wird.

WaitAny(Task[])

Wartet, bis eines der bereitgestellten Task-Objekte die Ausführung abschließt.

WaitAny(Task[], TimeSpan)

Quelle:
Task.cs
Quelle:
Task.cs
Quelle:
Task.cs

Wartet darauf, dass bereitgestellte Task-Objekte, die abgebrochen werden können, innerhalb eines angegebenen Zeitintervalls vollständig ausgeführt werden.

C#
public static int WaitAny (System.Threading.Tasks.Task[] tasks, TimeSpan timeout);

Parameter

tasks
Task[]

Ein Array von Task-Instanzen, auf die gewartet werden soll.

timeout
TimeSpan

Eine TimeSpan-Struktur, die die Anzahl der zu wartenden Millisekunden angibt, oder eine TimeSpan-Struktur, die -1 Millisekunden zum unendlichen Warten angibt.

Gibt zurück

Der Index der abgeschlossenen Aufgabe im tasks-Arrayargument oder -1, wenn das Timeout aufgetreten ist.

Ausnahmen

Task wurde verworfen.

Das tasks-Argument lautet null.

Die TotalMilliseconds-Eigenschaft des timeout-Arguments ist eine negative Zahl ungleich -1, was für ein unbegrenztes Zeitlimit steht.

- oder -

Die TotalMilliseconds Eigenschaft des timeout Arguments ist größer als Int32.MaxValue.

Das tasks-Argument enthält ein NULL-Element.

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

WaitAny(Task[], Int32, CancellationToken)

Quelle:
Task.cs
Quelle:
Task.cs
Quelle:
Task.cs

Wartet darauf, dass bereitgestellte Task-Objekte innerhalb einer angegebenen Anzahl an Millisekunden oder vollständig ausgeführt werden, oder bis ein Abbruchtoken abgebrochen wird.

C#
public static int WaitAny (System.Threading.Tasks.Task[] tasks, int millisecondsTimeout, System.Threading.CancellationToken cancellationToken);

Parameter

tasks
Task[]

Ein Array von Task-Instanzen, auf die gewartet werden soll.

millisecondsTimeout
Int32

Die Anzahl von Millisekunden, die gewartet wird, oder Infinite (-1) für Warten ohne Timeout.

cancellationToken
CancellationToken

Ein CancellationToken, das beim Warten auf den Abschluss einer Aufgabe überwacht werden soll.

Gibt zurück

Der Index der abgeschlossenen Aufgabe im tasks-Arrayargument oder -1, wenn das Timeout aufgetreten ist.

Ausnahmen

Task wurde verworfen.

Das tasks-Argument lautet null.

millisecondsTimeout ist eine negative Zahl, jedoch nicht -1, was einen unbeschränkten Timeout darstellt.

Das tasks-Argument enthält ein NULL-Element.

Das cancellationToken wurde abgebrochen.

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

WaitAny(Task[], Int32)

Quelle:
Task.cs
Quelle:
Task.cs
Quelle:
Task.cs

Wartet darauf, dass bereitgestellte Task-Objekte innerhalb einer angegebenen Anzahl an Millisekunden vollständig ausgeführt werden.

C#
public static int WaitAny (System.Threading.Tasks.Task[] tasks, int millisecondsTimeout);

Parameter

tasks
Task[]

Ein Array von Task-Instanzen, auf die gewartet werden soll.

millisecondsTimeout
Int32

Die Anzahl von Millisekunden, die gewartet wird, oder Infinite (-1) für Warten ohne Timeout.

Gibt zurück

Der Index der abgeschlossenen Aufgabe im tasks-Arrayargument oder -1, wenn das Timeout aufgetreten ist.

Ausnahmen

Task wurde verworfen.

Das tasks-Argument lautet null.

millisecondsTimeout ist eine negative Zahl, jedoch nicht -1, was einen unbeschränkten Timeout darstellt.

Das tasks-Argument enthält ein NULL-Element.

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

WaitAny(Task[], CancellationToken)

Quelle:
Task.cs
Quelle:
Task.cs
Quelle:
Task.cs

Wartet, bis bereitgestellte Task-Objekte die Ausführung abschließen oder bis der Wartevorgang abgebrochen wird.

C#
public static int WaitAny (System.Threading.Tasks.Task[] tasks, System.Threading.CancellationToken cancellationToken);

Parameter

tasks
Task[]

Ein Array von Task-Instanzen, auf die gewartet werden soll.

cancellationToken
CancellationToken

Ein CancellationToken, das beim Warten auf den Abschluss einer Aufgabe überwacht werden soll.

Gibt zurück

Der Index der ausgeführten Aufgabe im tasks-Arrayargument.

Ausnahmen

Task wurde verworfen.

Das tasks-Argument lautet null.

Das tasks-Argument enthält ein NULL-Element.

Das cancellationToken wurde abgebrochen.

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

WaitAny(Task[])

Quelle:
Task.cs
Quelle:
Task.cs
Quelle:
Task.cs

Wartet, bis eines der bereitgestellten Task-Objekte die Ausführung abschließt.

C#
public static int WaitAny (params System.Threading.Tasks.Task[] tasks);

Parameter

tasks
Task[]

Ein Array von Task-Instanzen, auf die gewartet werden soll.

Gibt zurück

Der Index des abgeschlossenen Task-Objekts im tasks-Array.

Ausnahmen

Task wurde verworfen.

Das tasks-Argument lautet null.

Das tasks-Argument enthält ein NULL-Element.

Beispiele

Im folgenden Beispiel werden fünf Aufgaben gestartet, von denen jede mindestens 50 Millisekunden oder maximal 1.050 Millisekunden im Ruhezustand bleibt. Die WaitAny -Methode wartet dann, bis eine der Aufgaben abgeschlossen ist. Das Beispiel zeigt die Aufgaben-ID des Vorgangs an, der die Wartezeit beendet hat, sowie die aktuelle status aller Aufgaben.

C#
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

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0