Se connecter avec Microsoft
S'identifier ou créer un compte.
Bonjour,
Sélectionnez un autre compte.
Vous avez plusieurs comptes
Choisissez le compte avec lequel vous voulez vous connecter.

Symptômes

Le point 4.6 de.NET Framework ajouté une nouvelle valeur de type enum, RunContinuationsAsynchronously, aux énumérations TaskCompletionSource et TaskCreationOptions . Cette valeur impose les tâches à exécuter de façon asynchrone, et cela permet d’éviter les situations de blocage. Toutefois, un problème a été découvert dans lequel, pour certains types spécifiques de continuations (en particulier lorsque les continuations créez des Task.WhenAll, Task.WhenAnyou TaskExtensions.Unwrap ), l’option est ignorée. Par conséquent, les continuations peuvent toujours exécuter simultanément.

L’exemple suivant illustre le problème. Si la valeur de RunContinuationsAsynchronously ont été fonctionne correctement, le thread de deux ID qui sont imprimés jamais serait la même, étant donné que la continuation serait toujours être planifiée sur différents threads.

using System;using System.Threading;
using System.Threading.Tasks;

class Program
{
static void Main()
{
var mres = new ManualResetEventSlim();

Console.WriteLine(Environment.CurrentManagedThreadId);

var tcs = new TaskCompletionSource<bool>(TaskCreationOptions.RunContinuationsAsynchronously);

var t = Task.WhenAll(tcs.Task);

t.ContinueWith(delegate
{
Console.WriteLine(Environment.CurrentManagedThreadId);
mres.Set();
}, TaskContinuationOptions.ExecuteSynchronously);

tcs.SetResult(true);
mres.Wait();
}
}

Résolution

Il n’existe actuellement aucune solution de contournement pour ce problème. L’équipe de.NET Framework de Microsoft travaille sur une solution à inclure dans une future mise à jour.


Besoin d’aide ?

Vous voulez plus d’options ?

Explorez les avantages de l’abonnement, parcourez les cours de formation, découvrez comment sécuriser votre appareil, etc.

Les communautés vous permettent de poser des questions et d'y répondre, de donner vos commentaires et de bénéficier de l'avis d'experts aux connaissances approfondies.

Ces informations vous ont-elles été utiles ?

Dans quelle mesure êtes-vous satisfait(e) de la qualité de la langue ?
Qu’est-ce qui a affecté votre expérience ?
En cliquant sur Envoyer, vos commentaires seront utilisés pour améliorer les produits et services de Microsoft. Votre administrateur informatique sera en mesure de collecter ces données. Déclaration de confidentialité.

Nous vous remercions de vos commentaires.

×