¿Qué diferencias hay entre CallContext y ThreadStatic?CallContext vs ThreadStatic
He entendido que en un entorno ASP.NET los datos almacenados en CallContext pueden persistir durante toda la solicitud hasta que finalice, mientras que ThreadStatic puede funcionar o no, ya que la solicitud puede cambiar los hilos. También aprendí que el HttpContext se almacena internamente usando CallContext.
En una aplicación normal, ambos parecen persistir durante la misma llamada de subproceso. ¿Cuándo no es este el caso?
Editar: En los comentarios que he aprendido que el contexto de la llamada es una abstracción sobre una tienda estática hilo. El marco de ASP.NET mueve explícitamente los datos de un hilo al siguiente que es para manejar una solicitud. Otro marco que quiera proporcionar agilidad de hilo podría hacer lo mismo para el almacenamiento contextual.
Ese hilo de spring.net estaba en la parte posterior de mi cabeza cuando pregunté (puntos para enlazar). Estaba buscando detalles relacionados con el caso que no es web. ¿Son esencialmente lo mismo? –
¿Qué quiere decir con el caso no web? Realmente depende de lo que estés haciendo: si sabes que estás en un único hilo, está bien usar ThreadStatic. –
Me refiero a una aplicación no afectada por las abstracciones de ASP.NET. CallContext y ThreadStatic parecen funcionar de la misma manera, es decir, parecen tener la misma duración. Estoy interesado en aprender las diferencias entre los dos. –