webForumDet fria alternativet

shared/static methods

6 svar · 432 visningar · startad av clarkbones

clarkbonesMedlem sedan feb. 20013 023 inlägg
#1

Vilka är egentligen riktlinjerna för när man skall sätta en metod som shared egentligen? Oftast faller det sig naturligt om man skall göra det eller inte, men ibland är det mer tveksamt. Jag har vagt för mig att jag läst att shared methods har en prestandaförlust p g a att extra säkerhetskontroller körs i frameworket, men kan inte hitta källan nu.Någon som kan bringa lite ljus i mörkret?

erkaMedlem sedan dec. 19996 522 inlägg
#2

Jag har fått lära mig att när en metod inte kräver något av klassens tillstånd är det lämpligt att använda static (antar att shared är VBs motsvarighet till static i c#). Det är vad jag utgår efter och hitills har det fungerat bra, dock har jag för mig att det är en viss prestanda förlust. Någon annan kanske kan ge oss mer ljus (har också funderar på detta ett tag)

spangoMedlem sedan juni 20008 205 inlägg
#3

Så lite som möjligt ska vara statiskt, eftersom det oftast (men inte alltid) är ett mindre objektorienterat sätt att lösa saker på. Men hur som helst ska du inte bry dig om prestanda när du väljer statisk/inte statisk metod, om inte annat för att du förmodligen har grava designproblem om du har så många anrop av statiska metoder att det blir ett problem. Undantag finns iofs i drivor, men det spelar ingen roll.

Egentligen är statiska metoder mest ett hack för att komma runt att vissa språk inte har stöd för fristående funktioner...

JonMedlem sedan juli 20011 304 inlägg
#4

Ska du jobba med någon typ av trådning så blir det problem med statiska funktioner

spangoMedlem sedan juni 20008 205 inlägg
#5

På vilket vis då? Det finns inget som hindrar en från att göra trådsäkra statiska metoder.

JonMedlem sedan juli 20011 304 inlägg
#6

På vilket vis då? Det finns inget som hindrar en från att göra trådsäkra statiska metoder.

Du har såklart rätt. Det handlar om att om man har data som delas och uppdateras samtidigt så blir det problem. har som du påpekar egentligen inget att göra med om man har statiska metoder eller inte.
Lösningen är då att låsa den kritiska sektionen med en mutex eller ett lock. :)

clarkbonesMedlem sedan feb. 20013 023 inlägg
#7

spango skrev:

På vilket vis då? Det finns inget som hindrar en från att göra trådsäkra statiska metoder.

Hört talas om inkompetens? Kan vara ett stort hinder! ;)

Tack för intressanta svar!

142 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
139 ms — hämta tråd, inlägg och bilagor (db)