webForumDet fria alternativet

ASP.NET funderingar

.NET

2 svar · 374 visningar · startad av Nickemannen

Medlem sedan aug. 20003 575 inlägg
Frågan#1

Jag satt och diskuterade lite med mrhaze här på forumet om ASP.NET, och kom inte på lite saker som jag alls tänkt på när det gäller ASP.NET.

Första frågan är hur länge lever en statisk variabel?
I en winform lever den ju kvar tills applikationen dör. Så jag antar att det är samma sak i en ASP.NET applikation?

Andra frågan är måste man isåfall trådsäkra denna variabel? Jag antar att varje webbanrop skapar en eller flera nya trådar i IIS:en och därför antar ajg att variabeln kan anropas ifrån flera olika trådar, och om då denna variabel är en lista, eller databaskoppling så kan det ju krävas att den måste vara trådsäker.

Tacksam för lite svar. (har inte orkat googla än så kanske kommer in med lite svar själv.)

Medlem sedan juni 20008 205 inlägg
#2

Ja, statiska variabler lever så länge som klassen lever (vilket brukar vara, men långt från alltid är, så länge som applikationen lever).
Ja, statiska variabler måste trådsäkras om de kan kommas åt av olika trådar (t.ex. olika webbrequests) och de olika trådarna kan tänkas ändra på objektet.

Medlem sedan dec. 19996 721 inlägg
#3

Statiska variabler lever så långe som applikationsdomänen (appdomain) lever, såvida de inte utsmyckats med ThreadStatic-attributet, då de lever i en tråd.

258 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)