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.
Certains System.Threading.Tasks.Taskconstructeurs prennent un CancellationTokencomme paramètre: CancellationTokenSource source = new CancellationTokenSource(); Task t = new Task (/* method */, source.Token); Ce qui me déroute à ce sujet, c'est qu'il n'y a aucun moyen de l' intérieur du corps de la méthode pour réellement accéder au jeton transmis (par exemple, rien …
Il me manque peut-être quelque chose, mais quelle est la différence entre faire: public void MyMethod() { Task t = Task.Factory.StartNew(DoSomethingThatTakesTime); t.Wait(); UpdateLabelToSayItsComplete(); } public async void MyMethod() { var result = Task.Factory.StartNew(DoSomethingThatTakesTime); await result; UpdateLabelToSayItsComplete(); } private void DoSomethingThatTakesTime() { Thread.Sleep(10000); }
AFAIK, tout ce qu'il sait, c'est qu'à un moment donné, sa SetResultou SetExceptionméthode est appelée pour compléter l' Task<T>exposition à travers sa Taskpropriété. En d'autres termes, il agit en tant que producteur pour a Task<TResult>et son achèvement. J'ai vu ici l'exemple: Si j'ai besoin d'un moyen d'exécuter un Func de …
J'étais ravi de voir le nouvel System.Collections.Concurrentespace de noms dans .Net 4.0, plutôt sympa! Je l' ai vu ConcurrentDictionary, ConcurrentQueue, ConcurrentStack, ConcurrentBaget BlockingCollection. Une chose qui semble mystérieusement manquer est a ConcurrentList<T>. Dois-je l'écrire moi-même (ou le retirer du Web :))? Suis-je en train de manquer quelque chose d'évident ici?
Je veux créer un Task(pas Task<T>) terminé . Y a-t-il quelque chose de intégré à .NET pour ce faire? Une question connexe: créer une tâche terminée <T>
Je ne comprends pas très bien la différence entre Task.Waitet await. J'ai quelque chose de similaire aux fonctions suivantes dans un service ASP.NET WebAPI: public class TestController : ApiController { public static async Task<string> Foo() { await Task.Delay(1).ConfigureAwait(false); return ""; } public async static Task<string> Bar() { return await Foo(); …
J'ai la méthode: private static void Method() { Console.WriteLine("Method() started"); for (var i = 0; i < 20; i++) { Console.WriteLine("Method() Counter = " + i); Thread.Sleep(500); } Console.WriteLine("Method() finished"); } Et je veux démarrer cette méthode dans une nouvelle tâche. Je peux commencer une nouvelle tâche comme celle-ci var …
Cela fonctionne bien quand avoir une ou deux tâches génère une erreur "Une tâche a été annulée" lorsque nous avons plus d'une tâche répertoriée. List<Task> allTasks = new List<Task>(); allTasks.Add(....); allTasks.Add(....); Task.WaitAll(allTasks.ToArray(), configuration.CancellationToken); private static Task<T> HttpClientSendAsync<T>(string url, object data, HttpMethod method, string contentType, CancellationToken token) { HttpRequestMessage httpRequestMessage = …
En C # et TPL ( Task Parallel Library ), la Taskclasse représente un travail en cours qui produit une valeur de type T. J'aimerais savoir quel est le besoin de la méthode Task.FromResult ? Autrement dit: dans un scénario où vous avez déjà la valeur produite sous la main, …
Dans une application de métro, je dois exécuter un certain nombre d'appels WCF. Il y a un nombre important d'appels à faire, donc je dois les faire dans une boucle parallèle. Le problème est que la boucle parallèle se termine avant que les appels WCF ne soient terminés. Comment refactoriser …
Je joue avec ces tâches Windows 8 WinRT et j'essaie d'annuler une tâche en utilisant la méthode ci-dessous, et cela fonctionne jusqu'à un certain point. La méthode CancelNotification est appelée, ce qui vous fait penser que la tâche a été annulée, mais en arrière-plan, la tâche continue de s'exécuter, puis …
La classe CancellationTokenSourceest jetable. Un rapide coup d'œil dans Reflector prouve l'utilisation d' KernelEventune ressource (très probablement) non gérée. Puisque CancellationTokenSourcen'a pas de finaliseur, si nous ne le supprimons pas, le GC ne le fera pas. En revanche, si vous examinez les exemples répertoriés dans l'article MSDN Annulation dans les …
Au cours des derniers jours, j'ai testé les nouvelles fonctionnalités de .net 4.5 et c # 5. J'aime ses nouvelles fonctionnalités async / await. Auparavant, j'avais utilisé BackgroundWorker pour gérer des processus plus longs en arrière-plan avec une interface utilisateur réactive. Ma question est: après avoir ces nouvelles fonctionnalités intéressantes, …
Je viens de voir 3 routines concernant l'utilisation de TPL qui font le même travail; voici le code: public static void Main() { Thread.CurrentThread.Name = "Main"; // Create a task and supply a user delegate by using a lambda expression. Task taskA = new Task( () => Console.WriteLine("Hello from taskA.")); …
J'aimerais gérer une collection en parallèle, mais j'ai du mal à l'implémenter et j'espère donc avoir de l'aide. Le problème survient si je veux appeler une méthode marquée async en C #, dans le lambda de la boucle parallèle. Par exemple: var bag = new ConcurrentBag<object>(); Parallel.ForEach(myCollection, async item => …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.