Task.WaitAny Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Väntar på att något av de angivna Task objekten ska slutföra körningen.
Överlagringar
| Name | Description |
|---|---|
| WaitAny(Task[], TimeSpan) |
Väntar på att något av de angivna Task objekten ska slutföra körningen inom ett angivet tidsintervall. |
| WaitAny(Task[], Int32, CancellationToken) |
Väntar på att något av de angivna Task objekten ska slutföra körningen inom ett angivet antal millisekunder eller tills en annulleringstoken har avbrutits. |
| WaitAny(Task[], Int32) |
Väntar på att något av de angivna Task objekten ska slutföra körningen inom ett angivet antal millisekunder. |
| WaitAny(Task[], CancellationToken) |
Väntar på att något av de angivna Task objekten ska slutföra körningen om inte väntan avbryts. |
| WaitAny(Task[]) |
Väntar på att något av de angivna Task objekten ska slutföra körningen. |
WaitAny(Task[], TimeSpan)
- Källa:
- Task.cs
- Källa:
- Task.cs
- Källa:
- Task.cs
- Källa:
- Task.cs
- Källa:
- Task.cs
Väntar på att något av de angivna Task objekten ska slutföra körningen inom ett angivet tidsintervall.
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
Parametrar
- timeout
- TimeSpan
En TimeSpan som representerar antalet millisekunder som ska vänta, eller ett TimeSpan som representerar -1 millisekunder för att vänta på obestämd tid.
Returer
Indexet för den slutförda aktiviteten i matrisargumentet tasks eller -1 om tidsgränsen inträffade.
Undantag
Har Task tagits bort.
Argumentet tasks är null.
Egenskapen TotalMilliseconds för timeout argumentet är ett annat negativt tal än -1, vilket representerar en oändlig timeout.
-eller-
Egenskapen TotalMilliseconds för timeout argumentet är större än Int32.MaxValue.
Argumentet tasks innehåller ett null-element.
Gäller för
WaitAny(Task[], Int32, CancellationToken)
- Källa:
- Task.cs
- Källa:
- Task.cs
- Källa:
- Task.cs
- Källa:
- Task.cs
- Källa:
- Task.cs
Väntar på att något av de angivna Task objekten ska slutföra körningen inom ett angivet antal millisekunder eller tills en annulleringstoken har avbrutits.
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
Parametrar
- millisecondsTimeout
- Int32
Antalet millisekunder som ska vänta eller Infinite (-1) för att vänta på obestämd tid.
- cancellationToken
- CancellationToken
En CancellationToken att observera i väntan på att en uppgift ska slutföras.
Returer
Indexet för den slutförda aktiviteten i matrisargumentet tasks eller -1 om tidsgränsen inträffade.
Undantag
Har Task tagits bort.
Argumentet tasks är null.
millisecondsTimeout är ett annat negativt tal än -1, vilket representerar en oändlig timeout.
Argumentet tasks innehåller ett null-element.
Det cancellationToken avbröts.
Gäller för
WaitAny(Task[], Int32)
- Källa:
- Task.cs
- Källa:
- Task.cs
- Källa:
- Task.cs
- Källa:
- Task.cs
- Källa:
- Task.cs
Väntar på att något av de angivna Task objekten ska slutföra körningen inom ett angivet antal millisekunder.
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
Parametrar
- millisecondsTimeout
- Int32
Antalet millisekunder som ska vänta eller Infinite (-1) för att vänta på obestämd tid.
Returer
Indexet för den slutförda aktiviteten i matrisargumentet tasks eller -1 om tidsgränsen inträffade.
Undantag
Har Task tagits bort.
Argumentet tasks är null.
millisecondsTimeout är ett annat negativt tal än -1, vilket representerar en oändlig timeout.
Argumentet tasks innehåller ett null-element.
Gäller för
WaitAny(Task[], CancellationToken)
- Källa:
- Task.cs
- Källa:
- Task.cs
- Källa:
- Task.cs
- Källa:
- Task.cs
- Källa:
- Task.cs
Väntar på att något av de angivna Task objekten ska slutföra körningen om inte väntan avbryts.
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
Parametrar
- cancellationToken
- CancellationToken
En CancellationToken att observera i väntan på att en uppgift ska slutföras.
Returer
Indexet för den slutförda aktiviteten i matrisargumentet tasks .
Undantag
Har Task tagits bort.
Argumentet tasks är null.
Argumentet tasks innehåller ett null-element.
Det cancellationToken avbröts.
Gäller för
WaitAny(Task[])
- Källa:
- Task.cs
- Källa:
- Task.cs
- Källa:
- Task.cs
- Källa:
- Task.cs
- Källa:
- Task.cs
Väntar på att något av de angivna Task objekten ska slutföra körningen.
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
Parametrar
Returer
Indexet för det slutförda Task objektet i matrisen tasks .
Undantag
Har Task tagits bort.
Argumentet tasks är null.
Argumentet tasks innehåller ett null-element.
Exempel
I följande exempel startas fem uppgifter som var och en ligger i viloläge i minst 50 millisekunder eller högst 1 050 millisekunder. Metoden WaitAny väntar sedan på att någon av uppgifterna ska slutföras. I exemplet visas aktivitets-ID:t för den aktivitet som avslutade väntan, samt den aktuella statusen för alla aktiviteter.
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