Was sind die Unterschiede zwischen CallContext und ThreadStatic?CallContext vs ThreadStatic
Ich habe verstanden, dass in einer ASP.NET-Umgebung in CallContext gespeicherte Daten in der gesamten Anforderung bis zum Ende gespeichert bleiben können, während ThreadStatic funktioniert oder nicht, da die Anforderung Threads wechseln kann. Ich habe auch gelernt, dass der HttpContext intern mit dem CallContext gespeichert wird.
In einer regelmäßigen Anwendung sowohl sie scheinen überall in dem gleichen Thread Aufruf zu beharren. Wann ist das nicht der Fall?
Edit: In den Kommentaren habe ich gelernt, dass der Anruf Kontext ist eine Abstraktion über einen Thread statischen Speicher. Das ASP.NET-Framework verschiebt die Daten explizit von einem Thread zum nächsten, der eine Anforderung verarbeiten soll. Ein anderes Framework, das Thread-Agilität bereitstellen möchte, könnte dasselbe für den kontextbezogenen Speicher tun.
Dieser spring.net Thread war in meinem Hinterkopf, als ich fragte (Punkte für die Verknüpfung). Ich habe besonders nach Details gesucht, die sich auf den Nicht-Web-Fall beziehen. Sind sie im Wesentlichen gleich? –
Was meinen Sie mit dem Nicht-Web-Fall? Es hängt wirklich davon ab, was Sie tun - wenn Sie wissen, dass Sie in einem einzigen Thread sind, ist es in Ordnung ThreadStatic zu verwenden. –
Ich meine eine Anwendung, die nicht von den ASP.NET-Abstraktionen betroffen ist. CallContext und ThreadStatic scheinen auf die gleiche Weise zu funktionieren, d. H. Sie scheinen dieselbe Lebensdauer zu haben. Ich bin daran interessiert, die Unterschiede zwischen den beiden zu lernen. –