Questions marquées «task-parallel-library»

La bibliothèque parallèle de tâches fait partie du .NET Framework depuis .NET 4. Il s'agit d'un ensemble d'API permettant aux développeurs de programmer des applications asynchrones.

5
Pourquoi CancellationToken est-il distinct de CancellationTokenSource?
Je cherche une raison pour laquelle .NET CancellationTokenstruct a été introduit en plus de la CancellationTokenSourceclasse. Je comprends comment l'API doit être utilisée, mais je veux également comprendre pourquoi elle est conçue de cette façon. Ie, pourquoi avons-nous: var cts = new CancellationTokenSource(); SomeCancellableOperation(cts.Token); ... public void SomeCancellableOperation(CancellationToken token) { …


5
Pourquoi devrais-je préférer un simple «Wait Task.WhenAll» plutôt que plusieurs waits?
Au cas où je ne me soucierais pas de l'ordre d'achèvement des tâches et que j'aurais juste besoin de toutes les terminer, dois-je toujours utiliser await Task.WhenAllau lieu de plusieurs await? par exemple, est DoWork2ci - dessous une méthode préférée pour DoWork1(et pourquoi?): using System; using System.Threading.Tasks; namespace ConsoleApp { …

5
Créer une tâche terminée <T>
J'implémente une méthode Task&lt;Result&gt; StartSomeTask()et je connais déjà le résultat avant que la méthode ne soit appelée. Comment créer une tâche &lt;T&gt; déjà terminée? C'est ce que je fais actuellement: private readonly Result theResult = new Result(); public override Task&lt;Result&gt; StartSomeTask() { var task = new Task&lt;Result&gt;(() =&gt; theResult); task.RunSynchronously(CurrentThreadTaskScheduler.CurrentThread); …

3
Est-il considéré comme acceptable de ne pas appeler Dispose () sur un objet TPL Task?
Je souhaite déclencher une tâche à exécuter sur un thread d'arrière-plan. Je ne veux pas attendre la fin des tâches. Dans .net 3.5, j'aurais fait ceci: ThreadPool.QueueUserWorkItem(d =&gt; { DoSomething(); }); Dans .net 4, le TPL est la méthode suggérée. Le modèle commun que j'ai vu recommandé est: Task.Factory.StartNew(() =&gt; …


3
Quel est l'avantage d'utiliser async avec MVC5?
Quelle est la différence entre: public ActionResult Login(LoginViewModel model, string returnUrl) { if (ModelState.IsValid) { IdentityResult result = IdentityManager.Authentication.CheckPasswordAndSignIn(AuthenticationManager, model.UserName, model.Password, model.RememberMe); if (result.Success) { return Redirect("~/home"); } else { AddErrors(result); } } return View(model); } et: [HttpPost] [AllowAnonymous] [ValidateAntiForgeryToken] public async Task&lt;ActionResult&gt; Login(LoginViewModel model, string returnUrl) { if (ModelState.IsValid) …

7
OperationCanceledException de l'API Web ASP.NET lorsque le navigateur annule la demande
Lorsqu'un utilisateur charge une page, il effectue une ou plusieurs requêtes ajax, qui atteignent les contrôleurs ASP.NET Web API 2. Si l'utilisateur accède à une autre page, avant que ces requêtes ajax ne soient terminées, les requêtes sont annulées par le navigateur. Notre ELMAH HttpModule enregistre ensuite deux erreurs pour …

2
Différence entre Wait et ContinueWith
Quelqu'un peut-il expliquer si awaitet ContinueWithsont synonymes ou non dans l'exemple suivant. J'essaye d'utiliser TPL pour la première fois et j'ai lu toute la documentation, mais je ne comprends pas la différence. Attendez : String webText = await getWebPage(uri); await parseData(webText); Continuer avec : Task&lt;String&gt; webText = new Task&lt;String&gt;(() =&gt; …




3
Les exceptions d'une tâche n'ont pas été observées en attendant la tâche ou en accédant à sa propriété Exception. En conséquence, l'exception non observée était
Qu'est-ce que cela signifie et comment le résoudre? J'utilise des tâches TPL. Toute l'erreur Les exceptions d'une tâche n'ont pas été observées en attendant la tâche ou en accédant à sa propriété Exception. Par conséquent, l'exception non observée a été renvoyée par le thread du finaliseur. à System.Threading.Tasks.TaskExceptionHolder.Finalize () mscorlib


3
Le SynchronizationContext actuel ne peut pas être utilisé comme un TaskScheduler
J'utilise des tâches pour exécuter des appels de serveur de longue durée dans mon ViewModel et les résultats sont rassemblés lors de l' Dispatcherutilisation TaskScheduler.FromSyncronizationContext(). Par exemple: var context = TaskScheduler.FromCurrentSynchronizationContext(); this.Message = "Loading..."; Task task = Task.Factory.StartNew(() =&gt; { ... }) .ContinueWith(x =&gt; this.Message = "Completed" , context); Cela …

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.