Articles of task parallel library

Où définir le rappel pour la méthode asynchrone basée sur une tâche

À la suite de cette question , j’essaie d’implémenter une méthode asynchrone à l’aide de la TPL et d’essayer de suivre les directives TAP. Je veux que ma méthode asynchrone effectue un rappel lorsqu’elle est terminée. Autant que je sache, il y a trois façons de le faire. 1) Rappel manuel dans mon délégué de […]

Comment SynchronizationContext.Current du thread principal peut-il devenir nul dans une application Windows Forms?

J’ai un problème dans mon application: À un moment donné, SynchronizationContext.Current devient nul pour le thread principal. Je n’arrive pas à reproduire le même problème dans un projet isolé. Mon vrai projet est complexe; Il mélange Windows Forms et WPF et appelle les services Web WCF. Autant que je sache, ce sont tous les systèmes […]

Que fait MaxDegreeOfParallelism?

J’utilise Parallel.ForEach et je fais des mises à jour de firebase database, maintenant sans définir MaxDegreeOfParallelism, une machine à processeur dual core entraîne des délais d’attente pour le client sql, où sinon la machine processeur quad core n’a pas de délai d’attente. Maintenant, je n’ai aucun contrôle sur les types de cœurs de processeurs disponibles […]

Impossible de convertir implicitement le type ‘ssortingng’ en ‘System.Threading.Tasks.Task ‘

Je suis nouveau dans la programmation asynchrone, donc après avoir parcouru quelques exemples de codes asynchrones, j’ai pensé à écrire un simple code asynchrone J’ai créé une simple application Winform et à l’intérieur du formulaire, j’ai écrit le code suivant. Mais ça ne marche pas private Task methodAsync() { Thread.Sleep(10000); return “Hello”; //Error: Cannot implicitly […]

Puis-je utiliser la bibliothèque parallèle de tâches dans un projet .Net 3.5?

J’ai entendu que la bibliothèque parallèle de tâches peut être utilisée dans un projet .Net 3.5. Est-ce correct, et si oui, comment l’utiliser? Dans .Net 4.0, il réside dans System.Threading, mais lorsque je sélectionne .Net 3.5 comme cible dans Visual Studio 2010, je n’ai pas access aux classes comme Parallel et les boucles Parallel.

Pourquoi TaskCanceledException se produit-il?

J’ai le code de test suivant: void Button_Click(object sender, RoutedEventArgs e) { var source = new CancellationTokenSource(); var tsk1 = new Task(() => Thread1(source.Token), source.Token); var tsk2 = new Task(() => Thread2(source.Token), source.Token); tsk1.Start(); tsk2.Start(); source.Cancel(); try { Task.WaitAll(new[] {tsk1, tsk2}); } catch (Exception ex) { // here exception is caught } } void Thread1(CancellationToken […]

Paramètre par défaut pour CancellationToken

J’ai un code asynchrone auquel j’aimerais append un CancellationToken. Cependant, il existe de nombreuses implémentations où cela n’est pas nécessaire. J’aimerais avoir un paramètre par défaut, par exemple CancellationToken.None. cependant, Task DoStuff(…., CancellationToken ct = null) les rendements Une valeur de type ” ne peut pas être utilisée comme paramètre par défaut car il n’y […]

Y at-il quelque chose comme asynchrone BlockingCollection ?

Je voudrais await le résultat de BlockingCollection.Take() manière asynchrone, donc je ne bloque pas le thread. Vous cherchez quelque chose comme ça: var item = await blockingCollection.TakeAsync(); Je sais que je pourrais le faire: var item = await Task.Run(() => blockingCollection.Take()); mais cela tue un peu l’idée, car un autre thread (de ThreadPool ) est […]

ne peut pas attendre async lambda

Considère ceci, Task task = new Task (async () =>{ await TaskEx.Delay(1000); }); task.Start(); task.Wait(); L’appel task.Wait () n’attend pas la fin de la tâche et la ligne suivante est exécutée immédiatement, mais si j’emballe l’expression lambda async dans un appel de méthode, le code fonctionne comme prévu. private static async Task AwaitableMethod() { await […]

Implémentation correcte d’un bloc réessayable

Teaser : les gars, cette question ne concerne pas la façon de mettre en œuvre la politique de nouvelle tentative. Il s’agit de l’achèvement correct d’un bloc de stream de données TPL. Cette question est essentiellement une continuation de ma question précédente Réessayer la politique dans ITargetBlock . La réponse à cette question était la […]