title: How do the semantics of AsyncLocal differ from the logical call context?
body: <p>.NET 4.6 introduces the <code>AsyncLocal&lt;T&gt;</code> class for flowing ambient data along the asynchronous flow of control. I've previously used <code>CallContext.LogicalGet/SetData</code> for this purpose, and I'm wondering if and in what ways the two are semantically different (beyond the obvious API differences like strong typing and lack of reliance on string keys).</p>