user iconAnonymous on November 26th 2006
10680 views

topic iconDllImport a uvlonění paměti

Dobrý den,
mám docela velký problém s uvolněním paměti v .net c#

Má aplikace si naimportuje dll knihovnu (entrypoint) a pak zavola nejakou jeji funkci. Ta funkce provede to ze knihovna pravdepodobne vyuzije dalsi zdroje z dalsich knihoven. Ovsem kdyz chci aby aplikace bezela dal pouze znicim objekt (dispose) tak se porad drzi odkazy na knihovny v pameti. Takze jine aplikace pouzivajici stejne dll se nepodari nastartovat. Vypnu-li aplikaci pamet se uvolni. Nevite nekdo jak treba rucne znicit pointry nejlip kaskadove?

predem dekuji

user iconVlasta on November 26th 2006 0

Knihovny nahrané automaticky přes DllImport nelze jednoduše uvolnit. Nezaručenou možností je nahrát knihovnu do oddělené AppDomain a tu pak zničit. Lepší je nepoužívat DllImport, ale nahrát knihovnu a ručně. Občas někdo doporučuje v cyklu volat FreeLibrary, ale to je jen návod na pozdější komplikace.

user icon