Warum ist HttpContext.Current nach dem Warten null?

Ich habe den folgenden Test-WebAPI-Code. Ich verwende kein WebAPI in der Produktion, aber ich habe dies aufgrund einer Diskussion über diese Frage gemacht:Asynchrone WebAPI-Frage

Hier ist die anstößige WebAPI-Methode:

public async Task<string> Get(int id)
{
    var x = HttpContext.Current;
    if (x == null)
    {
        // not thrown
        throw new ArgumentException("HttpContext.Current is null");
    }

    await Task.Run(() => { Task.Delay(500); id = 3; });

    x = HttpContext.Current;
    if (x == null)
    {
        // thrown
        throw new ArgumentException("HttpContext.Current is null");
    }

    return "value";
}

Ich hatte hiermit geglaubt, dass die zweite Ausnahme da bei zu erwarten istawait&nbsp;abgeschlossen ist, wird es wahrscheinlich auf einem anderen Thread sein, woHttpContext.Current&nbsp;als Thread-statische Variable wird nicht mehr in den entsprechenden Wert aufgelöst. Nun, basierend auf dem Synchronisationskontext, könnte es tatsächlich gezwungen sein, nach dem Warten zum selben Thread zurückzukehren, aber ich tue in meinem Test nichts Besonderes. Dies ist nur eine einfache, naive Verwendung vonawait.

In Kommentaren in einer anderen Frage wurde mir das gesagtHttpContext.Current&nbsp;sollte sich nach einer Wartezeit auflösen. Es gibt sogar einen weiteren Kommentar zu dieser Frage, der dasselbe anzeigt. Also, was ist wahr? Sollte es auflösen? Ich denke nein, aber ich möchte eine verbindliche Antwort darauf, weilasync&nbsp;undawait&nbsp;ist neu genug, dass ich nichts definitives finden kann.

TL; DR: IstHttpContext.Current&nbsp;möglicherweisenull&nbsp;nach einemawait?