Přihlásit se pomocí účtu Microsoft
Přihlaste se nebo si vytvořte účet.
Dobrý den,
Vyberte jiný účet.
Máte více účtů.
Zvolte účet, pomocí kterého se chcete přihlásit.

Příznaky

4.6 rozhraní.NET Framework přidána nová hodnota výčtového typu, RunContinuationsAsynchronouslyvýčty TaskCompletionSource a TaskCreationOptions . Tato hodnota vynutí spuštění asynchronní úloh a tímto způsobem se vyhnete zablokování situace. Však problém zjištěno, kde pro některé specifické druhy pokračování (zejména při Task.WhenAll, Task.WhenAnynebo TaskExtensions.Unwrap vytvořit pokračování), možnost je ignorována. Proto pokračování může spustit synchronně.

Následující ukázka znázorňuje problém. Pokud hodnota RunContinuationsAsynchronously byly správně funguje, vlákno dva identifikátory, které jsou vytištěny by nikdy být stejné, protože pokračování by vždy měla být naplánováno na různých podprocesů.

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

Řešení

V současné době není žádné řešení tohoto problému. Rozhraní.NET Framework Microsoft team pracuje na řešení k zahrnutí do budoucích aktualizací.


Potřebujete další pomoc?

Chcete další možnosti?

Prozkoumejte výhody předplatného, projděte si školicí kurzy, zjistěte, jak zabezpečit své zařízení a mnohem více.

Komunity vám pomohou klást otázky a odpovídat na ně, poskytovat zpětnou vazbu a vyslechnout odborníky s bohatými znalostmi.

Byly tyto informace užitečné?

Jak jste spokojeni s kvalitou jazyka?
Co ovlivnilo váš názor?
Po stisknutí tlačítka pro odeslání se vaše zpětná vazba použije k vylepšování produktů a služeb Microsoftu. Váš správce IT bude moci tato data shromažďovat. Prohlášení o zásadách ochrany osobních údajů.

Děkujeme vám za zpětnou vazbu.

×