3

Je souhaite stocker des données par thread dans un service de données ADO.NET. Est-il prudent d'utiliser l'attribut ThreadStatic sur ma variable statique spécifique au thread, ou vais-je rencontrer des problèmes? Ma préoccupation est que mes variables ThreadStatic ne seront pas collectées après la fin de la requête et le fil meurt.Puis-je (sans risque) utiliser l'attribut ThreadStatic dans ADO.NET Data Services?

S'il y a une meilleure façon de faire ce que j'essaie de faire, s'il vous plaît faites le moi savoir. Cela semble juste comme la solution la plus simple.

Toute information serait très utile, merci!

Répondre

3

J'ai trouvé que l'objet DataService créé pour chaque requête est sur un thread marqué IsThreadPoolThread = true, donc l'utilisation de l'attribut [ThreadStatic] n'est pas appropriée dans ce cas, car les informations des requêtes précédentes pourraient être disponibles par la suite (non souhaitable).

0

Les variables marquées ThreadStatic auront une durée de vie au moins aussi longue que le thread sur lequel elles sont créées. Une fois ce thread terminé, ils sont soumis à la récupération de place comme toute autre valeur.