Static contre Application [Résolu]

Signaler
Messages postés
36
Date d'inscription
lundi 13 juin 2005
Statut
Membre
Dernière intervention
14 septembre 2005
-
Messages postés
2368
Date d'inscription
mardi 17 avril 2001
Statut
Modérateur
Dernière intervention
26 décembre 2007
-
Bonjour à tous,



Et oui, c'est encore moi ! J'aimerais savoir si quelqu'un
pourrait m'expliquer la différence entre une variable déclarée en
static dans un webservice et une variable utilisant l'état
d'application :

public static int test;

ou

Application["int"] = test;

La msdn 'vend' l'état d'application comme étant le mécanisme de
variable globale des services web, mais, a première vue, les deux
fonctionnent de la même manière : à la première instanciation du
service, on instancie la variable static, ou on remplit l'état
d'application (appelé "int" dans mon exemple).

Alors, comme les deux existent, je me dis qu'il doit y avoir une différence (même légère) entre les deux.

Autre question (peut-être d'ailleurs la réponse à la première) : pour
l'état d'application, il y a un mécanisme de sémaphore (lock et unlock
autour d'une instruction qui accède à la variable globale, pour éviter
des problèmes de violation d'accès en utilisation concurrente), mais
qu'en est-il des variables déclarées en static ?

Merci d'avance pour vos réponses !

3 réponses

Messages postés
2368
Date d'inscription
mardi 17 avril 2001
Statut
Modérateur
Dernière intervention
26 décembre 2007
20
Le problème du static c'est que tu n'est pas sûr que ton WebService tourne toujours dans le même domaine / processus. Si les processus sont dédoublés (gd nb d'utilisateurs) ta variable static n'aura du coup aucun sens, contrairement à Application.

::|The S@ib|::
MVP C#.NET
Messages postés
36
Date d'inscription
lundi 13 juin 2005
Statut
Membre
Dernière intervention
14 septembre 2005

OK merci.

En plus, je ne savais même pas que le service web pouvait se dédoubler. Alors merci doublement !
Messages postés
2368
Date d'inscription
mardi 17 avril 2001
Statut
Modérateur
Dernière intervention
26 décembre 2007
20
sé dédoubler étais succint, tourner dans un processus différent il peut.

::|The S@ib|::
MVP C#.NET