【发布时间】:2014-10-04 02:04:30
【问题描述】:
根据我已阅读的所有内容,以下测试方法应该通过。我试图理解它为什么会失败。私有异步方法中的第一个断言按预期通过。但是,一旦任务返回并等待。 CallContext 中设置的值现在在检索时为空。
[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");
});
}
【问题讨论】:
标签: c# asynchronous task-parallel-library