Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 4 odgovora
  • 1.716 pregleda

Najnovija ↓

Linq2Sql datacontext memory leak 31.03.2011. u 09:13 · pre 189 meseci #1
Pozdrav,

U pitanju je win forms alplikacija. Imam 10-tak child formi (uglavnom neki sifarnici).
U svakoj child formi kreiram instancu DataContext-a i prikazujem podatke u grid-u.
Desava mi se da u toku rada, aplikacija zauzme po par stotina megabajta ram memorije.
Nije mi jasno zasto garbage collector ne cisti objekte koji vise nisu u upotrebi?
Trebalo bi cim se zatvori child forma da se ocisti i datacontext objekat koji je kreiran na toj formi?

Interesuje me, da li je bolje da postoji jedan datacontext na nivou cele aplikacije ili svaki modul da kreira zasebno datacontext na nivou forme?
Re: Linq2Sql datacontext memory leak 31.03.2011. u 09:25 · pre 189 meseci #2
Mozda imas puno rama i lifetime contexta ti je dug pa ode u Gen2. U svakom slucaju osiguraj se da disposujes datacontext kad ti vise nije potreban. Sem toga pitanje je previse uopsteno, negde si zakacio referencu van forme i podaci su ostali.
Potpis
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić
Re: Linq2Sql datacontext memory leak 31.03.2011. u 12:34 · pre 189 meseci #3
Kada mi se otvori forma sa gridom kreiram instancu datacontext-a.
Svaki put kada unose novi slog u tabelu otvara se nova forma i ona ima svoj novi datacontext.
Kada se zatvori forma za unos novog sloga u ovoj prvoj formi sa gridom radim ponovno rekreiranje datacontext-a da bi osvezio podatke.

dc = new DataContext();

Ta forma sa gridom je otvorena po 2-3 sata i non stop je instanciran datacontext dok je ona otvorena. Da li je mozda u tome problem?
Re: Linq2Sql datacontext memory leak 31.03.2011. u 13:40 · pre 189 meseci #4
Umesto da kreiras DataContext u toj formi u kojoj pravis novi unos, napravi u formi objekat prosledi ga glavnoj formi i ona neka uradi unos u bazu.
Takodje, ne moras rekreirati DataContext da bi osvezio podatke. Dovoljno je da iz postojeceg samo ponovo povuces podatke i prikazes.
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Re: Linq2Sql datacontext memory leak 31.03.2011. u 13:44 · pre 189 meseci #5
U toj formi na kojoj je grid moram uraditi ponovno rekreiranje datacontext-a jer postoji mogucnost da neko drugi unese podatak u tu tabelu (na drugoj lokaciji).

Tadje me interesuje sta sa master-detail tabelama?
U tim formama datacontext mora biti uvek instanciran kako bi radilo punjenje podataka u detail tabelu? (kada se krecem po master tabeli u gridu)
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme