54 votes

CallContext vs ThreadStatic

Quelles sont les différences entre CallContext et ThreadStatic?

J'ai bien compris que dans un ASP.NET environnement les données stockées dans CallContext pourrait être persisté tout au long de la demande jusqu'à ce qu'elle se termine alors que ThreadStatic peut ou peut ne pas fonctionner car la demande peut passer des fils. J'ai également appris que le HttpContext est stockée en interne à l'aide de la CallContext.

Dans une application régulière ils ont tous deux semblent persister à travers le même thread d'appel. Quand n'est-ce pas le cas?


Edit: Dans les commentaires, j'ai appris que le contexte d'appel est une abstraction au-dessus d'un fil statique magasin. L'ASP.NET cadre explicitement déplace les données à partir d'un thread pour la prochaine c'est pour traiter une demande. Autre cadre de qui veut fournir du fil de l'agilité pourrait faire de même pour contextuelles de stockage.

35voto

Jon Skeet Points 692016

Très souvent, une demande d'utiliser le même fil conducteur, mais il ne sera certainement pas toujours être le cas ASP.NET expositions fil de l'agilité. Il est vraiment utile de discussion à ce sujet sur le Spring.NET des forums. Cela fait référence à une en profondeur l'article du blog sur la question. Je soupçonne qui entre dans plus de détails que vous obtiendrez ici :)

Quelles informations contradictoires avez-vous vu, par intérêt?

15voto

Martin Brown Points 8593

Éléments stockés ThreadStatic sont disponibles pour plusieurs demandes. IIS réutilise le thread après qu’une demande est complète pour traiter les demandes suivantes. ASP.Net efface bas CallContext après chaque demande.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X