Task.Wait Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Wartet, bis der Task die Ausführung abschließt.
Überlädt
Wait(TimeSpan) |
Wartet darauf, dass die Task innerhalb eines angegebenen Zeitintervalls vollständig ausgeführt wird. |
Wait(Int32, CancellationToken) |
Wartet, bis der Task die Ausführung abschließt. Der Wartevorgang wird beendet, wenn ein Timeoutintervall abläuft oder ein Abbruchtoken abgebrochen wird, bevor die Aufgabe abgeschlossen ist. |
Wait(CancellationToken) |
Wartet, bis der Task die Ausführung abschließt. Der Wartevorgang wird beendet, wenn ein Abbruchtoken abgebrochen wird, bevor die Aufgabe abgeschlossen ist. |
Wait(TimeSpan, CancellationToken) |
Wartet, bis der Task die Ausführung abschließt. |
Wait() |
Wartet, bis der Task die Ausführung abschließt. |
Wait(Int32) |
Wartet darauf, dass die Task innerhalb einer angegebenen Anzahl an Millisekunden vollständig ausgeführt wird. |
Wait(TimeSpan)
Wartet darauf, dass die Task innerhalb eines angegebenen Zeitintervalls vollständig ausgeführt wird.
public:
bool Wait(TimeSpan timeout);
public bool Wait (TimeSpan timeout);
member this.Wait : TimeSpan -> bool
Public Function Wait (timeout As TimeSpan) As Boolean
Parameter
- timeout
- TimeSpan
Eine TimeSpan-Struktur, die die Anzahl der zu wartenden Millisekunden angibt, oder eine TimeSpan-Struktur, die -1 Millisekunden zum unendlichen Warten angibt.
Gibt zurück
true
, wenn der Task die Ausführung innerhalb der zugewiesenen Zeit abgeschlossen hat, andernfalls false
.
Ausnahmen
Task wurde verworfen.
timeout
ist eine negative Zahl ungleich -1 Millisekunden, die ein unendliches Timeout darstellt.
- oder -
timeout
ist größer als Int32.MaxValue.
Der Task wurde abgebrochen. Die InnerExceptions-Sammlung enthält ein TaskCanceledException-Objekt.
- oder - Während der Ausführung des Tasks wurde eine Ausnahme ausgelöst. Die InnerExceptions-Sammlung enthält Informationen zu der Ausnahme bzw. den Ausnahmen.
Beispiele
Im folgenden Beispiel wird eine Aufgabe gestartet, die fünf Millionen zufällige Ganzzahlen zwischen 0 und 100 generiert und deren Mittel berechnet. Im Beispiel wird die Wait(TimeSpan) Methode verwendet, um auf die Ausführung der Anwendung innerhalb von 150 Millisekunden zu warten. Wenn die Anwendung normalerweise abgeschlossen ist, zeigt der Vorgang die Summe und das Mittel der zufälligen Zahlen an, die sie generiert hat. Wenn das Timeoutintervall abgelaufen ist, zeigt das Beispiel eine Nachricht an, bevor es beendet wird.
using System;
using System.Threading.Tasks;
public class Example
{
public static void Main()
{
Task t = Task.Run( () => {
Random rnd = new Random();
long sum = 0;
int n = 5000000;
for (int ctr = 1; ctr <= n; ctr++) {
int number = rnd.Next(0, 101);
sum += number;
}
Console.WriteLine("Total: {0:N0}", sum);
Console.WriteLine("Mean: {0:N2}", sum/n);
Console.WriteLine("N: {0:N0}", n);
} );
TimeSpan ts = TimeSpan.FromMilliseconds(150);
if (! t.Wait(ts))
Console.WriteLine("The timeout interval elapsed.");
}
}
// The example displays output similar to the following:
// Total: 50,015,714
// Mean: 50.02
// N: 1,000,000
// Or it displays the following output:
// The timeout interval elapsed.
Imports System.Threading.Tasks
Module Example
Public Sub Main()
Dim t As Task = Task.Run( Sub()
Dim rnd As New Random()
Dim sum As Long
Dim n As Integer = 5000000
For ctr As Integer = 1 To n
Dim number As Integer = rnd.Next(0, 101)
sum += number
Next
Console.WriteLine("Total: {0:N0}", sum)
Console.WriteLine("Mean: {0:N2}", sum/n)
Console.WriteLine("N: {0:N0}", n)
End Sub)
Dim ts As TimeSpan = TimeSpan.FromMilliseconds(150)
If Not t.Wait(ts) Then
Console.WriteLine("The timeout interval elapsed.")
End If
End Sub
End Module
' The example displays output similar to the following:
' Total: 50,015,714
' Mean: 50.02
' N: 1,000,000
' Or it displays the following output:
' The timeout interval elapsed.
Hinweise
Wait(TimeSpan) ist eine Synchronisierungsmethode, die bewirkt, dass der aufrufende Thread auf die aktuelle Vorgangsinstanz wartet, bis eine der folgenden Aktionen auftritt:
Die Aufgabe wird erfolgreich abgeschlossen.
Die Aufgabe selbst wird abgebrochen oder löst eine Ausnahme aus. In diesem Fall behandeln Sie eine AggregateException Ausnahme. Die AggregateException.InnerExceptions Eigenschaft enthält Details zu Ausnahme oder Ausnahmen.
Das durch
timeout
Verstriche definierte Intervall. In diesem Fall wird die Ausführung des aktuellen Threads fortgesetzt, und die Methode wird zurückgegebenfalse
.
Gilt für:
Wait(Int32, CancellationToken)
Wartet, bis der Task die Ausführung abschließt. Der Wartevorgang wird beendet, wenn ein Timeoutintervall abläuft oder ein Abbruchtoken abgebrochen wird, bevor die Aufgabe abgeschlossen ist.
public:
bool Wait(int millisecondsTimeout, System::Threading::CancellationToken cancellationToken);
public bool Wait (int millisecondsTimeout, System.Threading.CancellationToken cancellationToken);
member this.Wait : int * System.Threading.CancellationToken -> bool
Public Function Wait (millisecondsTimeout As Integer, cancellationToken As CancellationToken) As Boolean
Parameter
- millisecondsTimeout
- Int32
Die Anzahl von Millisekunden, die gewartet wird, oder Infinite (-1) für Warten ohne Timeout.
- cancellationToken
- CancellationToken
Ein Abbruchtoken, das beim Warten auf den Abschluss der Aufgabe überwacht werden soll.
Gibt zurück
true
, wenn der Task die Ausführung innerhalb der zugewiesenen Zeit abgeschlossen hat, andernfalls false
.
Ausnahmen
Das cancellationToken
wurde abgebrochen.
Task wurde verworfen.
millisecondsTimeout
ist eine negative Zahl, jedoch nicht -1, was einen unbeschränkten Timeout darstellt.
Der Task wurde abgebrochen. Die InnerExceptions-Sammlung enthält ein TaskCanceledException-Objekt.
- oder - Während der Ausführung des Tasks wurde eine Ausnahme ausgelöst. Die InnerExceptions-Sammlung enthält Informationen zu der Ausnahme bzw. den Ausnahmen.
Beispiele
Im folgenden Beispiel wird die Wait(Int32, CancellationToken) Methode aufgerufen, um sowohl einen Timeoutwert als auch ein Abbruchtoken bereitzustellen, das die Wartezeit für den Abschluss eines Vorgangs beenden kann. Ein neuer Thread wird gestartet und führt die CancelToken
Methode aus, die angehalten wird und dann die Methode aufruft, um die CancellationTokenSource.Cancel Abbruchtoken abzubrechen. Eine Aufgabe wird dann für 5 Sekunden gestartet und verzögert. Die Wait Methode wird dann aufgerufen, um auf den Abschluss des Vorgangs zu warten und sowohl einen kurzen Timeoutwert als auch ein Abbruchtoken bereitgestellt.
using System;
using System.Threading;
using System.Threading.Tasks;
public class Example
{
public static void Main()
{
CancellationTokenSource ts = new CancellationTokenSource();
Thread thread = new Thread(CancelToken);
thread.Start(ts);
Task t = Task.Run( () => { Task.Delay(5000).Wait();
Console.WriteLine("Task ended delay...");
});
try {
Console.WriteLine("About to wait completion of task {0}", t.Id);
bool result = t.Wait(1510, ts.Token);
Console.WriteLine("Wait completed normally: {0}", result);
Console.WriteLine("The task status: {0:G}", t.Status);
}
catch (OperationCanceledException e) {
Console.WriteLine("{0}: The wait has been canceled. Task status: {1:G}",
e.GetType().Name, t.Status);
Thread.Sleep(4000);
Console.WriteLine("After sleeping, the task status: {0:G}", t.Status);
ts.Dispose();
}
}
private static void CancelToken(Object obj)
{
Thread.Sleep(1500);
Console.WriteLine("Canceling the cancellation token from thread {0}...",
Thread.CurrentThread.ManagedThreadId);
CancellationTokenSource source = obj as CancellationTokenSource;
if (source != null) source.Cancel();
}
}
// The example displays output like the following if the wait is canceled by
// the cancellation token:
// About to wait completion of task 1
// Canceling the cancellation token from thread 3...
// OperationCanceledException: The wait has been canceled. Task status: Running
// Task ended delay...
// After sleeping, the task status: RanToCompletion
// The example displays output like the following if the wait is canceled by
// the timeout interval expiring:
// About to wait completion of task 1
// Wait completed normally: False
// The task status: Running
// Canceling the cancellation token from thread 3...
Imports System.Threading
Imports System.Threading.Tasks
Module Example
Public Sub Main()
Dim ts As New CancellationTokenSource()
Dim thread As New Thread(AddressOf CancelToken)
thread.Start(ts)
Dim t As Task = Task.Run( Sub()
Task.Delay(5000).Wait()
Console.WriteLine("Task ended delay...")
End Sub)
Try
Console.WriteLine("About to wait completion of task {0}", t.Id)
Dim result As Boolean = t.Wait(1510, ts.Token)
Console.WriteLine("Wait completed normally: {0}", result)
Console.WriteLine("The task status: {0:G}", t.Status)
Catch e As OperationCanceledException
Console.WriteLine("{0}: The wait has been canceled. Task status: {1:G}",
e.GetType().Name, t.Status)
Thread.Sleep(4000)
Console.WriteLine("After sleeping, the task status: {0:G}", t.Status)
ts.Dispose()
End Try
End Sub
Private Sub CancelToken(obj As Object)
Thread.Sleep(1500)
Console.WriteLine("Canceling the cancellation token from thread {0}...",
Thread.CurrentThread.ManagedThreadId)
If TypeOf obj Is CancellationTokenSource Then
Dim source As CancellationTokenSource = CType(obj, CancellationTokenSource)
source.Cancel()
End If
End Sub
End Module
' The example displays output like the following if the wait is canceled by
' the cancellation token:
' About to wait completion of task 1
' Canceling the cancellation token from thread 3...
' OperationCanceledException: The wait has been canceled. Task status: Running
' Task ended delay...
' After sleeping, the task status: RanToCompletion
' The example displays output like the following if the wait is canceled by
' the timeout interval expiring:
' About to wait completion of task 1
' Wait completed normally: False
' The task status: Running
' Canceling the cancellation token from thread 3...
Beachten Sie, dass die genaue Ausgabe aus dem Beispiel davon abhängt, ob die Wartezeit aufgrund des Abbruchtokens abgebrochen wurde oder weil das Timeoutintervall abgelaufen ist.
Hinweise
Wait(Int32, CancellationToken) ist eine Synchronisierungsmethode, die bewirkt, dass der aufrufende Thread auf die aktuelle Vorgangsinstanz wartet, bis eine der folgenden Aktionen auftritt:
Die Aufgabe wird erfolgreich abgeschlossen.
Die Aufgabe selbst wird abgebrochen oder löst eine Ausnahme aus. In diesem Fall behandeln Sie eine AggregateException Ausnahme. Die AggregateException.InnerExceptions Eigenschaft enthält Details zu Ausnahme oder Ausnahmen.
Das
cancellationToken
Abbruchtoken wird abgebrochen. In diesem Fall löst der Aufruf der Wait(Int32, CancellationToken) Methode eine OperationCanceledException.Das durch
millisecondsTimeout
Verstriche definierte Intervall. In diesem Fall wird die Ausführung des aktuellen Threads fortgesetzt, und die Methode wird zurückgegebenfalse
.
Hinweis
Das Abbrechen des cancellationToken
Abbruchtokens wirkt sich nicht auf den ausgeführten Vorgang aus, es sei denn, es wurde auch das Abbruchtoken übergeben und ist bereit, abzubrechen. Durch Das Übergeben des cancellationToken
Objekts an diese Methode ermöglicht es einfach, dass die Wartezeit aufgrund einiger Bedingung abgebrochen werden kann.
Gilt für:
Wait(CancellationToken)
Wartet, bis der Task die Ausführung abschließt. Der Wartevorgang wird beendet, wenn ein Abbruchtoken abgebrochen wird, bevor die Aufgabe abgeschlossen ist.
public:
void Wait(System::Threading::CancellationToken cancellationToken);
public void Wait (System.Threading.CancellationToken cancellationToken);
member this.Wait : System.Threading.CancellationToken -> unit
Public Sub Wait (cancellationToken As CancellationToken)
Parameter
- cancellationToken
- CancellationToken
Ein Abbruchtoken, das beim Warten auf den Abschluss der Aufgabe überwacht werden soll.
Ausnahmen
Das cancellationToken
wurde abgebrochen.
Die Aufgabe wurde verworfen.
Der Task wurde abgebrochen. Die InnerExceptions-Sammlung enthält ein TaskCanceledException-Objekt.
- oder - Während der Ausführung des Tasks wurde eine Ausnahme ausgelöst. Die InnerExceptions-Sammlung enthält Informationen zu der Ausnahme bzw. den Ausnahmen.
Beispiele
Im folgenden Beispiel wird die einfache Verwendung eines Abbruchtokens veranschaulicht, um den Abschluss einer Aufgabe abzubrechen. Eine Aufgabe wird gestartet, ruft die CancellationTokenSource.Cancel Methode auf, um die Abbruchtoken der Tokenquelle abzubrechen, und verzögert sich dann für fünf Sekunden. Beachten Sie, dass die Aufgabe selbst nicht das Abbruchtoken übergeben wurde und nicht abgebrochen werden kann. Der Anwendungsthread ruft die Methode des Vorgangs Task.Wait auf, bis die Aufgabe abgeschlossen ist, aber die Wartezeit wird abgebrochen, sobald das Abbruchtoken abgebrochen wird und eine OperationCanceledException ausgelöst wird. Der Ausnahmehandler meldet die Ausnahme und wird dann für sechs Sekunden geschlafen. Wie die Ausgabe aus dem Beispiel zeigt, ermöglicht die Verzögerung, dass die Aufgabe im RanToCompletion Zustand abgeschlossen werden kann.
using System;
using System.Threading;
using System.Threading.Tasks;
public class Example
{
public static void Main()
{
CancellationTokenSource ts = new CancellationTokenSource();
Task t = Task.Run( () => { Console.WriteLine("Calling Cancel...");
ts.Cancel();
Task.Delay(5000).Wait();
Console.WriteLine("Task ended delay...");
});
try {
Console.WriteLine("About to wait for the task to complete...");
t.Wait(ts.Token);
}
catch (OperationCanceledException e) {
Console.WriteLine("{0}: The wait has been canceled. Task status: {1:G}",
e.GetType().Name, t.Status);
Thread.Sleep(6000);
Console.WriteLine("After sleeping, the task status: {0:G}", t.Status);
}
ts.Dispose();
}
}
// The example displays output like the following:
// About to wait for the task to complete...
// Calling Cancel...
// OperationCanceledException: The wait has been canceled. Task status: Running
// Task ended delay...
// After sleeping, the task status: RanToCompletion
Imports System.Threading
Imports System.Threading.Tasks
Module Example
Public Sub Main()
Dim ts As New CancellationTokenSource()
Dim t = Task.Run( Sub()
Console.WriteLine("Calling Cancel...")
ts.Cancel()
Task.Delay(5000).Wait()
Console.WriteLine("Task ended delay...")
End Sub)
Try
Console.WriteLine("About to wait for the task to complete...")
t.Wait(ts.Token)
Catch e As OperationCanceledException
Console.WriteLine("{0}: The wait has been canceled. Task status: {1:G}",
e.GetType().Name, t.Status)
Thread.Sleep(6000)
Console.WriteLine("After sleeping, the task status: {0:G}", t.Status)
End Try
ts.Dispose()
End Sub
End Module
' The example displays output like the following:
' About to wait for the task to complete...
' Calling Cancel...
' OperationCanceledException: The wait has been canceled. Task status: Running
' Task ended delay...
' After sleeping, the task status: RanToCompletion
Hinweise
Die Wait(CancellationToken) Methode erstellt eine abbruchbare Wartezeit. Das heißt, es führt dazu, dass der aktuelle Thread warten kann, bis eine der folgenden Aktionen auftritt:
Die Aufgabe wird abgeschlossen.
Das Abbruchtoken wird abgebrochen. In diesem Fall löst der Aufruf der Wait(CancellationToken) Methode eine OperationCanceledException.
Hinweis
Das Abbrechen des cancellationToken
Abbruchtokens wirkt sich nicht auf den ausgeführten Vorgang aus, es sei denn, es wurde auch das Abbruchtoken übergeben und ist bereit, abzubrechen. Durch das Übergeben des cancellationToken
Objekts an diese Methode kann die Wartezeit einfach abgebrochen werden.
Gilt für:
Wait(TimeSpan, CancellationToken)
Wartet, bis der Task die Ausführung abschließt.
public:
bool Wait(TimeSpan timeout, System::Threading::CancellationToken cancellationToken);
public bool Wait (TimeSpan timeout, System.Threading.CancellationToken cancellationToken);
member this.Wait : TimeSpan * System.Threading.CancellationToken -> bool
Public Function Wait (timeout As TimeSpan, cancellationToken As CancellationToken) As Boolean
Parameter
- timeout
- TimeSpan
Die Zeit, bis sie warten oder InfiniteTimeSpan auf unbestimmte Zeit warten
- cancellationToken
- CancellationToken
A CancellationToken , um während des Wartens auf die Aufgabe zu beobachten, die abgeschlossen werden soll.
Gibt zurück
true
, wenn der Task die Ausführung innerhalb der zugewiesenen Zeit abgeschlossen hat, andernfalls false
.
Ausnahmen
timeout
ist eine andere negative Zahl als -1 Millisekunden, die einen unendlichen Timeout darstellt
Oder
Timeout ist größer als MaxValue.
Das cancellationToken
wurde abgebrochen.
Gilt für:
Wait()
Wartet, bis der Task die Ausführung abschließt.
public:
void Wait();
public void Wait ();
member this.Wait : unit -> unit
Public Sub Wait ()
Ausnahmen
Task wurde verworfen.
Der Task wurde abgebrochen. Die InnerExceptions-Sammlung enthält ein TaskCanceledException-Objekt.
- oder - Während der Ausführung des Tasks wurde eine Ausnahme ausgelöst. Die InnerExceptions-Sammlung enthält Informationen zu der Ausnahme bzw. den Ausnahmen.
Beispiele
Im folgenden Beispiel wird eine Aufgabe gestartet, die zwischen 0 und 100 zufällige Ganzzahlen generiert und deren Mittelwert berechnet. Im Beispiel wird die Wait Methode verwendet, um sicherzustellen, dass die Aufgabe abgeschlossen wird, bevor die Anwendung beendet wird. Andernfalls würde das Beispiel beendet, bevor die Aufgabe den Mittelwert berechnen und anzeigen kann, da es sich um eine Konsolenanwendung handelt.
using System;
using System.Threading.Tasks;
public class Example
{
public static void Main()
{
Task t = Task.Run( () => {
Random rnd = new Random();
long sum = 0;
int n = 1000000;
for (int ctr = 1; ctr <= n; ctr++) {
int number = rnd.Next(0, 101);
sum += number;
}
Console.WriteLine("Total: {0:N0}", sum);
Console.WriteLine("Mean: {0:N2}", sum/n);
Console.WriteLine("N: {0:N0}", n);
} );
t.Wait();
}
}
// The example displays output similar to the following:
// Total: 50,015,714
// Mean: 50.02
// N: 1,000,000
Imports System.Threading.Tasks
Module Example
Public Sub Main()
Dim t As Task = Task.Run( Sub()
Dim rnd As New Random()
Dim sum As Long
Dim n As Integer = 1000000
For ctr As Integer = 1 To n
Dim number As Integer = rnd.Next(0, 101)
sum += number
Next
Console.WriteLine("Total: {0:N0}", sum)
Console.WriteLine("Mean: {0:N2}", sum/n)
Console.WriteLine("N: {0:N0}", n)
End Sub)
t.Wait()
End Sub
End Module
' The example displays output similar to the following:
' Total: 50,015,714
' Mean: 50.02
' N: 1,000,000
Hinweise
Wait ist eine Synchronisierungsmethode, die bewirkt, dass der aufrufende Thread warten kann, bis die aktuelle Aufgabe abgeschlossen ist. Wenn die aktuelle Aufgabe die Ausführung nicht gestartet hat, versucht die Wait-Methode, den Vorgang aus dem Zeitplaner zu entfernen und es inline im aktuellen Thread auszuführen. Wenn die Ausführung des aktuellen Vorgangs nicht möglich ist oder die Ausführung des aktuellen Vorgangs bereits gestartet wurde, blockiert er den aufrufenden Thread, bis die Aufgabe abgeschlossen ist. Weitere Informationen finden Sie unter Task.Wait und "Inlining" im Parallel Programming with .NET Blog.
Siehe auch
Gilt für:
Wait(Int32)
Wartet darauf, dass die Task innerhalb einer angegebenen Anzahl an Millisekunden vollständig ausgeführt wird.
public:
bool Wait(int millisecondsTimeout);
public bool Wait (int millisecondsTimeout);
member this.Wait : int -> bool
Public Function Wait (millisecondsTimeout As Integer) As Boolean
Parameter
- millisecondsTimeout
- Int32
Die Anzahl von Millisekunden, die gewartet wird, oder Infinite (-1) für Warten ohne Timeout.
Gibt zurück
true
, wenn der Task die Ausführung innerhalb der zugewiesenen Zeit abgeschlossen hat, andernfalls false
.
Ausnahmen
Task wurde verworfen.
millisecondsTimeout
ist eine negative Zahl, jedoch nicht -1, was einen unbeschränkten Timeout darstellt.
Der Task wurde abgebrochen. Die InnerExceptions-Sammlung enthält ein TaskCanceledException-Objekt.
- oder - Während der Ausführung des Tasks wurde eine Ausnahme ausgelöst. Die InnerExceptions-Sammlung enthält Informationen zu der Ausnahme bzw. den Ausnahmen.
Beispiele
Im folgenden Beispiel wird eine Aufgabe gestartet, die fünf Millionen zufällige Ganzzahlen zwischen 0 und 100 generiert und deren Mittel berechnet. Im Beispiel wird die Wait(Int32) Methode verwendet, um auf die Ausführung der Anwendung innerhalb von 150 Millisekunden zu warten. Wenn die Anwendung normalerweise abgeschlossen ist, zeigt der Vorgang die Summe und das Mittel der zufälligen Zahlen an, die sie generiert hat. Wenn das Timeoutintervall abgelaufen ist, zeigt das Beispiel eine Nachricht an, bevor es beendet wird.
using System;
using System.Threading.Tasks;
public class Example
{
public static void Main()
{
Task t = Task.Run( () => {
Random rnd = new Random();
long sum = 0;
int n = 5000000;
for (int ctr = 1; ctr <= n; ctr++) {
int number = rnd.Next(0, 101);
sum += number;
}
Console.WriteLine("Total: {0:N0}", sum);
Console.WriteLine("Mean: {0:N2}", sum/n);
Console.WriteLine("N: {0:N0}", n);
} );
if (! t.Wait(150))
Console.WriteLine("The timeout interval elapsed.");
}
}
// The example displays output similar to the following:
// Total: 50,015,714
// Mean: 50.02
// N: 1,000,000
// Or it displays the following output:
// The timeout interval elapsed.
Imports System.Threading.Tasks
Module Example
Public Sub Main()
Dim t As Task = Task.Run( Sub()
Dim rnd As New Random()
Dim sum As Long
Dim n As Integer = 5000000
For ctr As Integer = 1 To n
Dim number As Integer = rnd.Next(0, 101)
sum += number
Next
Console.WriteLine("Total: {0:N0}", sum)
Console.WriteLine("Mean: {0:N2}", sum/n)
Console.WriteLine("N: {0:N0}", n)
End Sub)
If Not t.Wait(150) Then
Console.WriteLine("The timeout interval elapsed.")
End If
End Sub
End Module
' The example displays output similar to the following:
' Total: 50,015,714
' Mean: 50.02
' N: 1,000,000
' Or it displays the following output:
' The timeout interval elapsed.
Hinweise
Wait(Int32) ist eine Synchronisierungsmethode, die bewirkt, dass der aufrufende Thread auf die aktuelle Vorgangsinstanz wartet, bis eine der folgenden Aktionen auftritt:
Die Aufgabe wird erfolgreich abgeschlossen.
Die Aufgabe selbst wird abgebrochen oder löst eine Ausnahme aus. In diesem Fall behandeln Sie eine AggregateException Ausnahme. Die AggregateException.InnerExceptions Eigenschaft enthält Details zur Ausnahme oder Ausnahmen.
Das durch
millisecondsTimeout
Verstriche definierte Intervall. In diesem Fall setzt der aktuelle Thread die Ausführung fort, und die Methode gibt zurückfalse
.