Tema: Re: Visual studio 5 ir modaline forma
Autorius: Jornada Del Muerto
Data: 2010-10-25 18:16:30
GC.[spausk tada ctrl+space] :))

"Valdas" <valdonas@super.lt> wrote in message news:ia35n5$bs4$1@trimpas.omnitel.net...
> Na o tai kaip mano atveju (Visual Studio 5, Visual Basic), prisibrauti prie 
> to GC (Garbage Collector) ?
> 
> "Jornada Del Muerto" <agiraTrintI@gmx.co.uk> wrote in message 
> news:i9s1h6$n88$1@trimpas.omnitel.net...
>> Instance tai kazkokio tipo sukurtas objektas, pvz.: DataTable yra tipas, 
>> tipas gali buti klase, struktura, ar primityvus tipas pvz int ir t.t.. tai 
>> yra tipas, o sio tipo sukurtas objektas yra to tipo object instance, arba 
>> tiesiog to tipo instance, pvz.:
>>
>> Daleiskim tu susikurei savo open file dialog klase, ja uzvadinai 
>> "ManoFileOpenDialogas" <- kitaip sakant sukurei ManoFileOpenDialogas tipa.
>>
>> ' Deklaruojam
>> Dim a As ManoFileOpenDialogas ' nurodai kad kintamasis a bus 
>> ManoFileOpenDialogas tipo
>>
>> ' kintamajame a sukuriu (kiti dar vadina inicializuoju) 
>> ManoFileOpenDialogas tipo object instance
>> a = new ManoFileOpenDialogas ' va a ir bus instance (dar kiti vadintu 
>> objektu, zodziu kaip nepavadinsi taip nepagadinsi)
>>
>>    Siaip terminologijos ipac tokios bazines OOP vertetu pasimokinti, ok 
>> toliaujam keliau :)  tau ka is esmes norejo pasakyti zmones, kad .NET yra 
>> toks dalykas kaip GC (Garbage Collector) grubiai vertus, siuksliu 
>> rinkejas, pvz. kokiam nors C++ viska alokuota rankiniu budu atminti skirta 
>> kazkokiam programos darbui, po to reikedavo nepamirsti atlaisvinti - 
>> kitaip ji uzimdavo ir toliau vieta ir su laiku prisikaupdavo tos 
>> rezervuotos/alokuotos atminties daug, nuo ko galedavo luzti programa, .net 
>> atvejais tam buna ivairus metodai dispose ir pan.. Bet .NET daugeli tokiu 
>> objektu pasalina pats GC pagalba, del to greiciausia su tavuoju objektu 
>> taspats atsitinka, tiesiog reik suprasti kokiom aplinkybem .net pats juos 
>> naikina.
>>
>>    Visumoje .net automatu, kaip jau ir minejau naikina objektus kurie 
>> niekur nera saugomi ar isiminti, pvz kazkokiam kintamajame ir panasiai, 
>> pvz. turime funkcija:
>>
>> Public Sub ManoFunkcija
>>
>>    Dim a As ManoFileOpenDialogas '
>>    a = new ManoFileOpenDialogas
>>
>>    ' dirbi su a
>>    a.DoModal() ' ir t.t...
>>
>> End Sub
>>
>>    Isejus is sios funkcijos a bus automatiskai naikinamas, bet sekanti 
>> karta iskvietus sia funkcija (tiksliau metoda) objektas sukuriamas bus is 
>> naujo, taip va ir turetu buti daroma, paprastai atmintyje niekas nelaiko 
>> inicializuotu OpenFileDialog'u, aplamai kuo maziau laikysi tokio 
>> nereikalingo saugoti slamsto tuo tavo programa maziau resursu valgys, o 
>> jeigu nori ji saugotis del to kad naudosi labai daznai (nebent) tai 
>> saugokis toje klaseje kuri su juo dirbs, tada butu kazkas tokio:
>>
>> ' Klases, bet ne metodo/funkcijos zonoje deklaruotas kintamasis
>> public OpenFile As ManoFileOpenDialogas = Null ' Nepamenu gerai VB.NET 
>> sintakses, paskutini kart reikejo pries 5 metus
>>
>> Public Sub ManoFunkcija
>>
>>    If Me.OpenFile = Null Then ' rodos VB kitaip tikrinasi ar objektas null
>>        Me.OpenFile = new ManoFileOpenDialogas
>>    End If
>>
>>    ' kreipiesi i savo dialoga
>>    Me.DoModal() ' ir t.t...
>>
>> End Sub
>>
>> Tada 1 karta bus sukuriamas dialogas ir veliau pernaudojamas ji nekuriant 
>> dar karta, tuo paciu jis saugomas bus klaseje kuri ji naudoja, siaip tai 
>> geriausia savo kodo parasytum, tai tada butu aiskiau kas negerai, gal beda 
>> visai kitur.
>>
>>
>> Freelancer Developer [R&D]
>> http://www.lythum.lt
>>
>> Naujausias research: 
>> http://wiki.lythum.lt/index.php?title=Facebook_integrafimo_galimyb%C4%97s
>>
>>
>> "Valdas" <valdonas@super.lt> wrote in message 
>> news:i9rr3e$cre$1@trimpas.omnitel.net...
>>> na as kazko nesuprantu, siaip as ant Visual Basic darau, tai kas tas
>>> instance nezinau :((
>>>
>>> "Andrius F" <andriusflMORESPAM@gmail.com> wrote in message
>>> news:i9rq8p$bic$1@trimpas.omnitel.net...
>>>> kiekviena karta pries ShowDialog() kurk nauja instance..
>>>> using(var form = new SomeForm())
>>>> {
>>>>    if(form.ShowDialog(this) == DialogResult.Ok)
>>>>    {
>>>>        ...
>>>>    }
>>>> }
>>>>
>>>> "Valdas" <valdonas@super.lt> wrote in message
>>>> news:i9rf9u$qk9$1@trimpas.omnitel.net...
>>>>> ka reiskia nereusint instance, tai kaip tada naudotis tuo ShowDialog ?
>>>>> man reikalingas tas modaliskumas, nes darau savo open file dialoga, ir
>>>>> kai uzdarau forma, tik tuomet gaunu reiksme...
>>>>>
>>>>> "fakeID" <fakeID@fakeHost.com> wrote in message
>>>>> news:i9rcss$n3d$1@trimpas.omnitel.net...
>>>>>> Nereiktu reusinti formos instance, nebent tau tikrai taip reikia (pvz
>>>>>> forma kuriasi 15 sek, bet tada turbut kazkas blogai su tavo forma ;)..
>>>>>> Blogiausiu atveju isitikink, kad GarbageCollector nesunaikins tavo
>>>>>> formos:
>>>>>>    a. ikisk instance i static field
>>>>>>    b. galbut verta overridint close, ir hidint forma vietoj 
>>>>>> base.close()
>>>>>>
>>>>>> bet siaip - nereusink instance. tai bloga architektura
>>>>>>
>>>>>> "Valdas" <valdonas@super.lt> wrote in message
>>>>>> news:i9r6gd$er1$1@trimpas.omnitel.net...
>>>>>>> Sveiki, iskilo tokia beda, bandant is vienos formos atidaryti kita
>>>>>>> "Forrm2.ShowDialog()", pradzioje atidaro, bet programai padirbus 
>>>>>>> kokia
>>>>>>> valanda ir vel bandant atidaryti, meta klaida
>>>>>>> "ObjectDisposedException", gal nujauciat kur cia beda ?
>>>>>>>
>>>>>>> aciu
>>>>>>>
>>>>>>>
>>>>>
>>>>>
>>>
>>> 
> 
>