Task.WaitAny Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Attend la fin de l'exécution de l'un des objets Task fournis.
Surcharges
WaitAny(Task[], TimeSpan) |
Attend la fin de l'exécution de n'importe lequel des objets Task fournis dans un intervalle de temps spécifié. |
WaitAny(Task[], Int32, CancellationToken) |
Attend la fin de l'exécution de l'un des objets Task fournis en un nombre de millisecondes spécifié ou jusqu'à ce qu'un jeton d'annulation soit annulé. |
WaitAny(Task[], Int32) |
Attend la fin de l'exécution de l'un des objets Task fournis en un nombre de millisecondes spécifié. |
WaitAny(Task[], CancellationToken) |
Attend la fin de l'exécution de l'un des objets Task fournis sauf si l'attente est annulée. |
WaitAny(Task[]) |
Attend la fin de l'exécution de l'un des objets Task fournis. |
WaitAny(Task[], TimeSpan)
- Source:
- Task.cs
- Source:
- Task.cs
- Source:
- Task.cs
Attend la fin de l'exécution de n'importe lequel des objets Task fournis dans un intervalle de temps spécifié.
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
Paramètres
- timeout
- TimeSpan
TimeSpan qui représente le nombre de millièmes de secondes à attendre ou TimeSpan qui représente -1 millième de seconde, pour attendre indéfiniment.
Retours
Index de la tâche achevée dans l'argument de tableau tasks
ou -1, si le délai a expiré.
Exceptions
Task a été supprimé.
L'argument tasks
a la valeur null
.
La propriété TotalMilliseconds de l’argument timeout
est un nombre négatif autre que -1, qui représente un délai d'attente infini.
- ou -
La TotalMilliseconds propriété de l’argument timeout
est supérieure à Int32.MaxValue.
L’argument tasks
contient un élément Null.
S’applique à
WaitAny(Task[], Int32, CancellationToken)
- Source:
- Task.cs
- Source:
- Task.cs
- Source:
- Task.cs
Attend la fin de l'exécution de l'un des objets Task fournis en un nombre de millisecondes spécifié ou jusqu'à ce qu'un jeton d'annulation soit annulé.
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
Paramètres
- millisecondsTimeout
- Int32
Nombre de millisecondes à attendre, ou Infinite (-1) pour un délai d'attente infini.
- cancellationToken
- CancellationToken
CancellationToken à observer en attendant qu'une tâche se termine.
Retours
Index de la tâche achevée dans l'argument de tableau tasks
ou -1, si le délai a expiré.
Exceptions
Task a été supprimé.
L'argument tasks
a la valeur null
.
millisecondsTimeout
est un nombre négatif différent de -1, qui représente un délai d’attente infini.
L’argument tasks
contient un élément Null.
cancellationToken
a été annulé.
S’applique à
WaitAny(Task[], Int32)
- Source:
- Task.cs
- Source:
- Task.cs
- Source:
- Task.cs
Attend la fin de l'exécution de l'un des objets Task fournis en un nombre de millisecondes spécifié.
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
Paramètres
- millisecondsTimeout
- Int32
Nombre de millisecondes à attendre, ou Infinite (-1) pour un délai d'attente infini.
Retours
Index de la tâche achevée dans l'argument de tableau tasks
ou -1, si le délai a expiré.
Exceptions
Task a été supprimé.
L'argument tasks
a la valeur null
.
millisecondsTimeout
est un nombre négatif différent de -1, qui représente un délai d’attente infini.
L’argument tasks
contient un élément Null.
S’applique à
WaitAny(Task[], CancellationToken)
- Source:
- Task.cs
- Source:
- Task.cs
- Source:
- Task.cs
Attend la fin de l'exécution de l'un des objets Task fournis sauf si l'attente est annulée.
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
Paramètres
- cancellationToken
- CancellationToken
CancellationToken à observer en attendant qu'une tâche se termine.
Retours
Index de la tâche achevée dans l'argument de tableau tasks
.
Exceptions
Task a été supprimé.
L'argument tasks
a la valeur null
.
L’argument tasks
contient un élément Null.
cancellationToken
a été annulé.
S’applique à
WaitAny(Task[])
- Source:
- Task.cs
- Source:
- Task.cs
- Source:
- Task.cs
Attend la fin de l'exécution de l'un des objets Task fournis.
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
Paramètres
Retours
Index de l’objet Task terminé dans le tableau tasks
.
Exceptions
Task a été supprimé.
L'argument tasks
a la valeur null
.
L’argument tasks
contient un élément Null.
Exemples
L’exemple suivant lance cinq tâches, chacune d’elles étant en veille pendant au moins 50 millisecondes ou un maximum de 1 050 millisecondes. La WaitAny méthode attend ensuite que l’une des tâches se termine. L’exemple montre comment afficher l’ID de tâche de la tâche qui a mis fin à l’attente, ainsi que la status actuelle de toutes les tâches.
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