Prisijunkite prie „Microsoft“
Prisijunkite arba sukurkite paskyrą.
Sveiki,
Pasirinkti kitą paskyrą.
Turite kelias paskyras
Pasirinkite paskyrą, kurią naudodami norite prisijungti.

Požymiai

.NET Framework 4.6 įtraukta nauja išvardijimo tipo reikšmė, RunContinuationsAsynchronously, TaskCompletionSource ir TaskCreationOptions enum. Ši reikšmė priverčia užduotis paleisti asynchronicznie, o tai padeda išvengti aklavietė situacijų. Tačiau problema buvo aptikta, konkrečių rūšių pratęsimą (visų pirma, kai Task.WhenAll, Task.WhenAnyarba TaskExtensions.Unwrap sukurti ir pratęsimą), kad nepaisoma. Todėl pratęsimą gali paleisti sinchroniškai.

Šis pavyzdys rodo, kad problema. Jei reikšmė RunContinuationsAsynchronously veikia tinkamai, du gija ID, kurie yra išspausdinti niekada bus toks pat, nes tęsti visada suplanuoti į skirtingas temas.

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

Sprendimas

Šiuo metu yra šios problemos sprendimo nėra. Microsoft .NET Framework komandos dirba sprendimą įtraukti į ateityje atnaujinti.


Reikia daugiau pagalbos?

Norite daugiau parinkčių?

Sužinokite apie prenumeratos pranašumus, peržiūrėkite mokymo kursus, sužinokite, kaip apsaugoti savo įrenginį ir kt.

Bendruomenės padeda užduoti klausimus ir į juos atsakyti, pateikti atsiliepimų ir išgirsti iš ekspertų, turinčių daug žinių.

Ar ši informacija buvo naudinga?

Ar esate patenkinti kalbos kokybe?
Kas turėjo įtakos jūsų įspūdžiams?
Paspaudus mygtuką Pateikti, jūsų atsiliepimai bus naudojami tobulinant „Microsoft“ produktus ir paslaugas. Jūsų IT administratorius galės rinkti šiuos duomenis. Privatumo patvirtinimas.

Dėkojame už jūsų atsiliepimą!

×