Hallo,
ich habe ein Programm, das bei Klick auf einen Artikel über den dazugehörigen EAN eine Website öffnet und dort den Inhalt mit dem Suchergebnis darstellt. Da zum Artikel zusätzlich viele weitere Informationen geladen werden wie z.B. Verkaufshistory etc, habe ich manche dieser Ladevorgänge in Threads ausgelagert. Ich kann nun ca. 20-30 Artikel aufrufen, habe dann aber bei der compilierten Exe das Problem, dass dann das Programm irgendwann ohne irgend welche Fehler anzuzeigen, aussteigt. Im Debuger zeigt er mir zumind. was mit "Out of Memory" an.
Ich habe nun die Vermutung, dass das durch die Threads erzeugt wird, da diese zwar gestartet werden, dann aber nicht wieder entladen werden?
Ich rufe das z.B. wie folgt auf:
oder
Die Funktionen ansich sind ja eigentlich in sich abgeschlossen. Das Sub gibt am Ende auch seine verwendeten Datenverbindungen frei mit
dr.Close()
cn.Close()
cn.Dispose()
cmd.Dispose()
Wie kann ich solche Memory-Leaks am besten aufspüren. Muß so ein Treat auch irgendwie noch entladen werden?
ich habe ein Programm, das bei Klick auf einen Artikel über den dazugehörigen EAN eine Website öffnet und dort den Inhalt mit dem Suchergebnis darstellt. Da zum Artikel zusätzlich viele weitere Informationen geladen werden wie z.B. Verkaufshistory etc, habe ich manche dieser Ladevorgänge in Threads ausgelagert. Ich kann nun ca. 20-30 Artikel aufrufen, habe dann aber bei der compilierten Exe das Problem, dass dann das Programm irgendwann ohne irgend welche Fehler anzuzeigen, aussteigt. Im Debuger zeigt er mir zumind. was mit "Out of Memory" an.
Ich habe nun die Vermutung, dass das durch die Threads erzeugt wird, da diese zwar gestartet werden, dann aber nicht wieder entladen werden?
Ich rufe das z.B. wie folgt auf:
oder
Die Funktionen ansich sind ja eigentlich in sich abgeschlossen. Das Sub gibt am Ende auch seine verwendeten Datenverbindungen frei mit
dr.Close()
cn.Close()
cn.Dispose()
cmd.Dispose()
Wie kann ich solche Memory-Leaks am besten aufspüren. Muß so ein Treat auch irgendwie noch entladen werden?