Logg på med Microsoft
Logg på, eller opprett en konto.
Hei,
Velg en annen konto.
Du har flere kontoer
Velg kontoen du vil logge på med.

Symptomer

.NET Framework 4.6 lagt til en ny type opplistingsverdi, RunContinuationsAsynchronously, TaskCompletionSource og TaskCreationOptions -enumeratorer. Denne verdien tvinger oppgaver skal kjøres asynkront, og dette bidrar til å unngå situasjoner i vranglås. Imidlertid er oppdaget et problem der, for noen bestemte typer continuations (i bestemt når du oppretter continuations Task.WhenAll, Task.WhenAnyeller TaskExtensions.Unwrap ), alternativet ignoreres. Derfor av continuations kan fortsatt kjøre synkront.

Følgende eksempel viser problemet. Hvis RunContinuationsAsynchronously -verdi ble fungerer som skal, vil to tråden IDer som skrives ut aldri være den samme, fordi løpende vil alltid bli planlagt på forskjellige tråder.

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();
}
}

Oppløsning

Det finnes for øyeblikket ingen løsning for dette problemet. Microsoft .NET Framework-teamet arbeider med en løsning som skal inkluderes i en fremtidig oppdatering.


Trenger du mer hjelp?

Vil du ha flere alternativer?

Utforsk abonnementsfordeler, bla gjennom opplæringskurs, finn ut hvordan du sikrer enheten og mer.

Fellesskap hjelper deg med å stille og svare på spørsmål, gi tilbakemelding og høre fra eksperter med stor kunnskap.

Var denne informasjonen nyttig?

Hvor fornøyd er du med språkkvaliteten?
Hva påvirket opplevelsen din?
Når du trykker på Send inn, blir tilbakemeldingen brukt til å forbedre Microsoft-produkter og -tjenester. IT-administratoren kan samle inn disse dataene. Personvernerklæring.

Takk for tilbakemeldingen!

×