Logige sisse Microsofti kontoga
Logige sisse või looge konto.
Tere!
Valige mõni muu konto.
Teil on mitu kontot
Valige konto, millega soovite sisse logida.

Sümptomid

.NET Frameworki 4.6 lisatud uus enum tippige väärtus, RunContinuationsAsynchronously TaskCompletionSource ja TaskCreationOptions variandid. See väärtus sunnib ülesanded käivitada asünkroonselt ja see aitab vältida tupik. Siiski on avastatud probleem, kus mõned teatud tüüpi põhiuuringute jätku (eriti kui Task.WhenAll, Task.WhenAnyvõi TaskExtensions.Unwrap luua selle põhiuuringute jätku) võimalust ignoreeritakse. Seetõttu põhiuuringute jätku endiselt töötada sünkroonselt.

Järgmine näide näitab probleemi. RunContinuationsAsynchronously väärtus ei tööta korralikult, kaks jutulõnga ID-ga välja printida kunagi oleks sama, sest jätkamine oleks alati ajastatud peale erinevad teemad.

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

Lahendus

Praegu pole sellele probleemile pole vastukaalu. Microsoft .NET Frameworki meeskonna lahendus lisada tulevikus värskendust.


Kas vajate veel abi?

Kas soovite rohkem valikuvariante?

Siin saate tutvuda tellimusega kaasnevate eelistega, sirvida koolituskursusi, õppida seadet kaitsma ja teha veel palju muud.

Kogukonnad aitavad teil küsimusi esitada ja neile vastuseid saada, anda tagasisidet ja saada nõu rikkalike teadmistega asjatundjatelt.

Kas sellest teabest oli abi?

Kui rahul te keelekvaliteediga olete?
Mis mõjutas teie hinnangut?
Kui klõpsate nuppu Edasta, kasutatakse teie tagasisidet Microsofti toodete ja teenuste täiustamiseks. IT-administraator saab neid andmeid koguda. Privaatsusavaldus.

Täname tagasiside eest!

×