Die Aufgabe
effektiv abbrechen
await
Wenn Sie sich mit der WinRT -Aufgabe befassen, können Sie versuchen, die Methode zu verwenden, um die Aufgabe zu beenden. Dieser Code kann jedoch zu zufälligen Ergebnissen führen, da die Aufgabe auch dann, wenn Sie versuchen zu stornieren, weiterhin abgeschlossen sein. Um diese Grenze zu überwinden und die Aufgabe bei der Stornierung wirklich zu stoppen, befolgen Sie bitte die folgenden Schritte:
Die Funktion der Stornierung der Funktion durch Übergabe des -Objekts wird an Ihre Methode übertragen. Stellen Sie sicher, dass diese Token regelmäßig überprüft werden können. CancelNotification
CancellationToken
-blöcken im -Operationsblock können Sie
verarbeiten und geeignete Maßnahmen ergreifen, um die Auswirkungen der Aufgabenstornierung zu verringern.<code class="language-csharp">private async Task TryTask() { CancellationTokenSource source = new CancellationTokenSource(); source.CancelAfter(TimeSpan.FromSeconds(1)); Task<int> task = Task.Run(() => slowFunc(1, 2, source.Token), source.Token); try { await task; } catch (OperationCanceledException) { // 处理取消 } } private int slowFunc(int a, int b, CancellationToken cancellationToken) { string someString = string.Empty; for (int i = 0; i < 1000000; i++) { someString += i.ToString(); cancellationToken.ThrowIfCancellationRequested(); // 定期检查取消请求 } return a + b; }</code>
Das obige ist der detaillierte Inhalt vonWie kann man eine WinRT-Aufgabe ordnungsgemäß absagen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!