Avatar billede cdull Nybegynder
04. maj 2006 - 17:00 Der er 8 kommentarer og
3 løsninger

Brugern af using til objekter

jeg vil lige høre hvor meget i gør brug af using når i opretter og har med objekter at gøre i stedet for at lade garbage collectoren klare det.

Hvorfor gør i?
Hvorfor gør i ikke?
Pros and cons.

Tak.
Avatar billede arne_v Ekspert
04. maj 2006 - 17:05 #1
objekter som kun indeholder interne ressourcer implementerer typisk ikke
IDisposable saa using kan ikke bruges og GC virker fortrinligt

objekter som indeholder eksterne ressourcer implementerer IDispoable
saa using kan bruges og GC er ikke tilstraekkeligt

saa det afhaenger altsaa noget af hvilke objekter det er

personligt plejer jeg bare at kalde Dispose/Close eksplicit fremfor
at bruge using, men det er mest fordi jeg ogsaa bruger C++ og Java,
hvor man ikke har using - ikke et specielt godt argument
Avatar billede dr_chaos Nybegynder
04. maj 2006 - 18:13 #2
Jeg plejer at bruge using så snart jeg benytter en ressource som er midlertidig f.eks. en dataset eller lign.
Avatar billede spaceus Nybegynder
05. maj 2006 - 16:22 #3
jeg holder mest med arne... GC virker fint. Hovedsageligt... btw har du memory issues ellers leave it be... det er sjældent cost efficient
Avatar billede cdull Nybegynder
05. maj 2006 - 18:13 #4
Lyder lækkert.
Arne_v og Spaceus kan i komme med tilfælde hvor i har følt jer benyttet til at bruge det, eller bruger det fordi det er bedst.
Avatar billede arne_v Ekspert
05. maj 2006 - 18:35 #5
det mest klassiske eksempel paa brug af using maa vaere database connection

using (XxxConnection con = new XxxConnection(constr))
{
  ...
}

maaa vaere kodet millioner af gange
Avatar billede tuxic Nybegynder
13. maj 2006 - 01:43 #6
Dispose/using bruges almindeligvis når man vil have styr på hvornår en resource slippes.  Hvis et objekt holder en "ekstern resource" (den præcise betydbubg er lidt uklar; men kunne nok være et handle fx) og ikke implementerer IDisposable er GC/finalizer vel principielt godt nok, idet finalizeren kan rydde op. Problemet er jo bare at man ikke aner hvornår ens finalizer bliver kørt.

Hvorfor skal man så nogensinde bruge finalizeren: Fx i den situation hvor flere tråde har fat i objektet og ingen tråd derfor kan kalde Dispose (Brent Rectors eksempel).
Avatar billede arne_v Ekspert
19. juni 2006 - 00:24 #7
Tid at få afsluttet her ?
Avatar billede cdull Nybegynder
19. juni 2006 - 01:03 #8
jamen, så smid da et svar og tak for hjælpen :)
Arne_v og Dr_Chaos samt tuxic 10 point hver.
Avatar billede arne_v Ekspert
19. juni 2006 - 01:12 #9
ok
Avatar billede tuxic Nybegynder
19. juni 2006 - 21:38 #10
kanon
Avatar billede dr_chaos Nybegynder
20. juni 2006 - 10:17 #11
svar :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester