Aanmelden met Microsoft
Meld u aan of maak een account.
Hallo,
Selecteer een ander account.
U hebt meerdere accounts
Kies het account waarmee u zich wilt aanmelden.

Symptomen

Een nieuw type opsommingswaarde, RunContinuationsAsynchronously, de .NET Framework 4.6 toegevoegd aan de TaskCompletionSource en TaskCreationOptions -enums. Deze waarde zorgt ervoor dat taken worden asynchroon uitgevoerd en dit helpt om impasse situaties te vermijden. Echter een probleem ontdekt wanneer de optie wordt genegeerd voor bepaalde specifieke soorten doorloopt (met name als Task.WhenAll, Task.WhenAnyof TaskExtensions.Unwrap maakt de doorloopt). Daarom kunnen doorloopt steeds synchroon uitgevoerd.

In het volgende voorbeeld ziet u het probleem. Als de waarde van de RunContinuationsAsynchronously zijn goed, zou de twee thread-id's die worden afgedrukt nooit hetzelfde zijn, omdat de voortzetting zou altijd gepland op verschillende 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();
}
}

Oplossing

Er is momenteel geen oplossing voor dit probleem. Het team van Microsoft .NET Framework werkt aan een oplossing op te nemen in een toekomstige update.


Meer hulp nodig?

Meer opties?

Verken abonnementsvoordelen, blader door trainingscursussen, leer hoe u uw apparaat kunt beveiligen en meer.

Community's helpen u vragen te stellen en te beantwoorden, feedback te geven en te leren van experts met uitgebreide kennis.

Was deze informatie nuttig?

Hoe tevreden bent u met de taalkwaliteit?
Wat heeft uw ervaring beïnvloed?
Als u op Verzenden klikt, wordt uw feedback gebruikt om producten en services van Microsoft te verbeteren. Uw IT-beheerder kan deze gegevens verzamelen. Privacyverklaring.

Hartelijk dank voor uw feedback.

×