Task.WaitAny Methode

Definition

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

tasks
Task[]

Ein Array von Task Instanzen, auf denen gewartet werden soll.

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

tasks
Task[]

Ein Array von Task Instanzen, auf denen gewartet werden soll.

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

tasks
Task[]

Ein Array von Task Instanzen, auf denen gewartet werden soll.

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

tasks
Task[]

Ein Array von Task Instanzen, auf denen gewartet werden soll.

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

tasks
Task[]

Ein Array von Task Instanzen, auf denen gewartet werden soll.

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

Gilt für: