Aracılığıyla paylaş


Task.WaitAny Yöntem

Tanım

Sağlanan Task nesnelerden herhangi birinin yürütülmesini bekler.

Aşırı Yüklemeler

WaitAny(Task[], TimeSpan)

Sağlanan Task nesnelerden herhangi birinin belirli bir zaman aralığı içinde yürütmeyi tamamlamasını bekler.

WaitAny(Task[], Int32, CancellationToken)

Belirtilen sayıda milisaniye içinde veya iptal belirteci iptal edilene kadar sağlanan Task nesnelerden herhangi birinin yürütülmesini bekler.

WaitAny(Task[], Int32)

Sağlanan Task nesnelerden herhangi birinin belirtilen sayıda milisaniye içinde yürütmeyi tamamlamasını bekler.

WaitAny(Task[], CancellationToken)

Bekleme iptal edilmediği sürece sağlanan Task nesnelerden herhangi birinin yürütmeyi tamamlamasını bekler.

WaitAny(Task[])

Sağlanan Task nesnelerden herhangi birinin yürütülmesini bekler.

WaitAny(Task[], TimeSpan)

Kaynak:
Task.cs
Kaynak:
Task.cs
Kaynak:
Task.cs

Sağlanan Task nesnelerden herhangi birinin belirli bir zaman aralığı içinde yürütmeyi tamamlamasını bekler.

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

Parametreler

tasks
Task[]

Üzerinde bekleyebileceğiniz bir örnek dizisi Task .

timeout
TimeSpan

TimeSpan Beklenen milisaniye sayısını temsil eden veya süresiz olarak bekleyebilecek -1 milisaniyeyi temsil eden birTimeSpan.

Döndürülenler

Dizi bağımsız değişkenindeki tasks tamamlanmış görevin dizini veya zaman aşımı oluştuysa -1.

Özel durumlar

tasks bağımsız değişkenidirnull.

TotalMilliseconds Bağımsız değişkenin timeout özelliği, sonsuz zaman aşımını temsil eden -1 dışında bir negatif sayıdır.

-veya-

TotalMilliseconds Bağımsız değişkeninin timeout özelliği Int32.MaxValue değerinden büyüktür.

tasks bağımsız değişkeni null bir öğe içeriyor.

Şunlara uygulanır

WaitAny(Task[], Int32, CancellationToken)

Kaynak:
Task.cs
Kaynak:
Task.cs
Kaynak:
Task.cs

Belirtilen sayıda milisaniye içinde veya iptal belirteci iptal edilene kadar sağlanan Task nesnelerden herhangi birinin yürütülmesini bekler.

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

Parametreler

tasks
Task[]

Üzerinde bekleyebileceğiniz bir örnek dizisi Task .

millisecondsTimeout
Int32

Beklenen milisaniye sayısı veya Infinite (-1) süresiz olarak bekleniyor.

cancellationToken
CancellationToken

Görevin CancellationToken tamamlanmasını beklerken gözlemlemek için bir.

Döndürülenler

Dizi bağımsız değişkenindeki tasks tamamlanmış görevin dizini veya zaman aşımı oluştuysa -1.

Özel durumlar

tasks bağımsız değişkenidirnull.

millisecondsTimeout , -1 dışında sonsuz bir zaman aşımını temsil eden negatif bir sayıdır.

tasks bağımsız değişkeni null bir öğe içeriyor.

İptal cancellationToken edildi.

Şunlara uygulanır

WaitAny(Task[], Int32)

Kaynak:
Task.cs
Kaynak:
Task.cs
Kaynak:
Task.cs

Sağlanan Task nesnelerden herhangi birinin belirtilen sayıda milisaniye içinde yürütmeyi tamamlamasını bekler.

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

Parametreler

tasks
Task[]

Üzerinde bekleyebileceğiniz bir örnek dizisi Task .

millisecondsTimeout
Int32

Beklenen milisaniye sayısı veya Infinite (-1) süresiz olarak bekleniyor.

Döndürülenler

Dizi bağımsız değişkenindeki tasks tamamlanmış görevin dizini veya zaman aşımı oluştuysa -1.

Özel durumlar

tasks bağımsız değişkenidirnull.

millisecondsTimeout , -1 dışında sonsuz bir zaman aşımını temsil eden negatif bir sayıdır.

tasks bağımsız değişkeni null bir öğe içeriyor.

Şunlara uygulanır

WaitAny(Task[], CancellationToken)

Kaynak:
Task.cs
Kaynak:
Task.cs
Kaynak:
Task.cs

Bekleme iptal edilmediği sürece sağlanan Task nesnelerden herhangi birinin yürütmeyi tamamlamasını bekler.

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

Parametreler

tasks
Task[]

Üzerinde bekleyebileceğiniz bir örnek dizisi Task .

cancellationToken
CancellationToken

Görevin CancellationToken tamamlanmasını beklerken gözlemlemek için bir.

Döndürülenler

Dizi bağımsız değişkenindeki tasks tamamlanmış görevin dizini.

Özel durumlar

tasks bağımsız değişkenidirnull.

tasks bağımsız değişkeni null bir öğe içeriyor.

İptal cancellationToken edildi.

Şunlara uygulanır

WaitAny(Task[])

Kaynak:
Task.cs
Kaynak:
Task.cs
Kaynak:
Task.cs

Sağlanan Task nesnelerden herhangi birinin yürütülmesini bekler.

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

Parametreler

tasks
Task[]

Üzerinde bekleyebileceğiniz bir örnek dizisi Task .

Döndürülenler

Dizideki tamamlanmış Task nesnenin tasks dizini.

Özel durumlar

tasks bağımsız değişkenidirnull.

tasks bağımsız değişkeni null bir öğe içeriyor.

Örnekler

Aşağıdaki örnek, her biri en az 50 milisaniye veya en fazla 1.050 milisaniye uykuda olan beş görevi başlatır. Yöntemi WaitAny daha sonra görevlerin tamamlanmasını bekler. Örnekte, beklemeyi sonlandıran görevin görev kimliği ve tüm görevlerin geçerli durumu görüntülenir.

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

Şunlara uygulanır