Dans Windows 8 WinRT, la tâche fournit un mécanisme pour effectuer des opérations asynchrones. Cependant, l'annulation de la tâche de traitement peut être délicate.
Considérez le code suivant:
Bien que la méthode
<code class="language-csharp">private async void TryTask() { CancellationTokenSource source = new CancellationTokenSource(); source.Token.Register(CancelNotification); source.CancelAfter(TimeSpan.FromSeconds(1)); var task = Task<int>.Factory.StartNew(() => slowFunc(1, 2), source.Token); await task; if (task.IsCompleted) { MessageDialog md = new MessageDialog(task.Result.ToString()); await md.ShowAsync(); } else { MessageDialog md = new MessageDialog("Uncompleted"); await md.ShowAsync(); } } private int slowFunc(int a, int b) { string someString = string.Empty; for (int i = 0; i < 1000000; i++) { someString += i.ToString(); } return a + b; }</code>
CancelNotification
CancellationToken
Cette méthode doit être vérifiée régulièrement CancellationToken
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!