Task.WaitAny Task.WaitAny Task.WaitAny Task.WaitAny Method

Definition

Wartet, bis eines der bereitgestellten Task-Objekte die Ausführung abschließt.Waits for any of the provided Task objects to complete execution.

Überlädt

WaitAny(Task[], Int32, CancellationToken) WaitAny(Task[], Int32, CancellationToken) 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.Waits for any of the provided Task objects to complete execution within a specified number of milliseconds or until a cancellation token is cancelled.

WaitAny(Task[], TimeSpan) WaitAny(Task[], TimeSpan) WaitAny(Task[], TimeSpan) WaitAny(Task[], TimeSpan)

Wartet darauf, dass bereitgestellte Task-Objekte, die abgebrochen werden können, innerhalb eines angegebenen Zeitintervalls vollständig ausgeführt werden.Waits for any of the provided Task objects to complete execution within a specified time interval.

WaitAny(Task[], Int32) WaitAny(Task[], Int32) WaitAny(Task[], Int32) WaitAny(Task[], Int32)

Wartet darauf, dass bereitgestellte Task-Objekte innerhalb einer angegebenen Anzahl an Millisekunden vollständig ausgeführt werden.Waits for any of the provided Task objects to complete execution within a specified number of milliseconds.

WaitAny(Task[], CancellationToken) WaitAny(Task[], CancellationToken) WaitAny(Task[], CancellationToken)

Wartet, bis bereitgestellte Task-Objekte die Ausführung abschließen oder bis der Wartevorgang abgebrochen wird.Waits for any of the provided Task objects to complete execution unless the wait is cancelled.

WaitAny(Task[]) WaitAny(Task[]) WaitAny(Task[]) WaitAny(Task[])

Wartet, bis eines der bereitgestellten Task-Objekte die Ausführung abschließt.Waits for any of the provided Task objects to complete execution.

WaitAny(Task[], Int32, CancellationToken) WaitAny(Task[], Int32, CancellationToken) 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.Waits for any of the provided Task objects to complete execution within a specified number of milliseconds or until a cancellation token is cancelled.

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

Parameter

tasks
Task[]

Ein Array von Task-Instanzen, auf die gewartet werden soll.An array of Task instances on which to wait.

millisecondsTimeout
Int32 Int32 Int32 Int32

Die Anzahl von Millisekunden, die gewartet wird, oder Infinite (-1) für Warten ohne Timeout.The number of milliseconds to wait, or Infinite (-1) to wait indefinitely.

cancellationToken
CancellationToken CancellationToken CancellationToken CancellationToken

Ein CancellationToken, das beim Warten auf den Abschluss einer Aufgabe überwacht werden soll.A CancellationToken to observe while waiting for a task to complete.

Gibt zurück

Der Index der abgeschlossenen Aufgabe im tasks-Arrayargument oder -1, wenn das Timeout aufgetreten ist.The index of the completed task in the tasks array argument, or -1 if the timeout occurred.

Ausnahmen

Das tasks-Argument lautet null.The tasks argument is null.

millisecondsTimeout ist eine negative Zahl, jedoch nicht -1, was einen unbeschränkten Timeout darstellt.millisecondsTimeout is a negative number other than -1, which represents an infinite time-out.

Das tasks-Argument enthält ein NULL-Element.The tasks argument contains a null element.

Das cancellationToken wurde abgebrochen.The cancellationToken was canceled.

WaitAny(Task[], TimeSpan) WaitAny(Task[], TimeSpan) WaitAny(Task[], TimeSpan) WaitAny(Task[], TimeSpan)

Wartet darauf, dass bereitgestellte Task-Objekte, die abgebrochen werden können, innerhalb eines angegebenen Zeitintervalls vollständig ausgeführt werden.Waits for any of the provided Task objects to complete execution within a specified time interval.

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 die gewartet werden soll.An array of Task instances on which to wait.

timeout
TimeSpan TimeSpan TimeSpan TimeSpan

Eine TimeSpan-Struktur, die die Anzahl der zu wartenden Millisekunden angibt, oder eine TimeSpan-Struktur, die -1 Millisekunden zum unendlichen Warten angibt.A TimeSpan that represents the number of milliseconds to wait, or a TimeSpan that represents -1 milliseconds to wait indefinitely.

Gibt zurück

Der Index der abgeschlossenen Aufgabe im tasks-Arrayargument oder -1, wenn das Timeout aufgetreten ist.The index of the completed task in the tasks array argument, or -1 if the timeout occurred.

Ausnahmen

Das tasks-Argument lautet null.The tasks argument is null.

Die TotalMilliseconds-Eigenschaft des timeout-Arguments ist eine negative Zahl ungleich -1, was für ein unbegrenztes Zeitlimit steht.The TotalMilliseconds property of the timeout argument is a negative number other than -1, which represents an infinite time-out. - oder --or- Die TotalMilliseconds-Eigenschaft des timeout-Argument ist größer als MaxValue.The TotalMilliseconds property of the timeout argument is greater than MaxValue.

Das tasks-Argument enthält ein NULL-Element.The tasks argument contains a null element.

WaitAny(Task[], Int32) WaitAny(Task[], Int32) WaitAny(Task[], Int32) WaitAny(Task[], Int32)

Wartet darauf, dass bereitgestellte Task-Objekte innerhalb einer angegebenen Anzahl an Millisekunden vollständig ausgeführt werden.Waits for any of the provided Task objects to complete execution within a specified number of milliseconds.

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 die gewartet werden soll.An array of Task instances on which to wait.

millisecondsTimeout
Int32 Int32 Int32 Int32

Die Anzahl von Millisekunden, die gewartet wird, oder Infinite (-1) für Warten ohne Timeout.The number of milliseconds to wait, or Infinite (-1) to wait indefinitely.

Gibt zurück

Der Index der abgeschlossenen Aufgabe im tasks-Arrayargument oder -1, wenn das Timeout aufgetreten ist.The index of the completed task in the tasks array argument, or -1 if the timeout occurred.

Ausnahmen

Das tasks-Argument lautet null.The tasks argument is null.

millisecondsTimeout ist eine negative Zahl, jedoch nicht -1, was einen unbeschränkten Timeout darstellt.millisecondsTimeout is a negative number other than -1, which represents an infinite time-out.

Das tasks-Argument enthält ein NULL-Element.The tasks argument contains a null element.

WaitAny(Task[], CancellationToken) WaitAny(Task[], CancellationToken) WaitAny(Task[], CancellationToken)

Wartet, bis bereitgestellte Task-Objekte die Ausführung abschließen oder bis der Wartevorgang abgebrochen wird.Waits for any of the provided Task objects to complete execution unless the wait is cancelled.

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

Parameter

tasks
Task[]

Ein Array von Task-Instanzen, auf die gewartet werden soll.An array of Task instances on which to wait.

cancellationToken
CancellationToken CancellationToken CancellationToken CancellationToken

Ein CancellationToken, das beim Warten auf den Abschluss einer Aufgabe überwacht werden soll.A CancellationToken to observe while waiting for a task to complete.

Gibt zurück

Der Index der ausgeführten Aufgabe im tasks-Arrayargument.The index of the completed task in the tasks array argument.

Ausnahmen

Das tasks-Argument lautet null.The tasks argument is null.

Das tasks-Argument enthält ein NULL-Element.The tasks argument contains a null element.

Das cancellationToken wurde abgebrochen.The cancellationToken was canceled.

WaitAny(Task[]) WaitAny(Task[]) WaitAny(Task[]) WaitAny(Task[])

Wartet, bis eines der bereitgestellten Task-Objekte die Ausführung abschließt.Waits for any of the provided Task objects to complete execution.

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 die gewartet werden soll.An array of Task instances on which to wait.

Gibt zurück

Der Index des abgeschlossenen Task-Objekts im tasks-Array.The index of the completed Task object in the tasks array.

Ausnahmen

Das tasks-Argument lautet null.The tasks argument is null.

Das tasks-Argument enthält ein NULL-Element.The tasks argument contains a null element.

Beispiele

Im folgende Beispiel wird gestartet, fünf Tasks, von denen jeder mindestens 50 Millisekunden oder bis zu 1.050 Millisekunden im Ruhezustand ist.The following example launches five tasks, each of which sleeps for a minimum of 50 milliseconds or a maximum of 1,050 milliseconds. Die WaitAny Methode wartet dann eine der Aufgaben ausführen.The WaitAny method then waits for any of the tasks to complete. Das Beispiel zeigt die Task-ID der Aufgabe, die den Wartevorgang beendet wurde, sowie den aktuellen Status aller Aufgaben.The example displays the task ID of the task that ended the wait, as well as the current status of all the tasks.

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
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: