Na podstawie wszystkich przeczytanych przeze mnie metod należy przejść test. Próbuję zrozumieć, dlaczego zawodzi. Pierwsza assert w prywatnej asynchronicznej metodzie przebiega zgodnie z oczekiwaniami. Jednak gdy zadanie zostanie zwrócone i czeka. Wartość ustawiona w CallContext jest teraz pusta po pobraniu.Wartości logicznych wartości połączeń CallContext nie płyną z wykorzystaniem asynchronicznych zadań
[TestMethod]
public void LogicalCallContextBlockingTest()
{
PerformSimpleAsyncWork().Wait();
var result = CallContext.LogicalGetData("test");
Assert.AreEqual(result, "expected");
}
private async Task PerformSimpleAsyncWork()
{
await Task.Run(() =>
{
System.Threading.Thread.Sleep(100);
CallContext.LogicalSetData("test", "expected");
var result = CallContext.LogicalGetData("test");
Assert.AreEqual(result, "expected");
});
}
Wspaniale, teraz to rozumiem. Dzięki! –