@lampasss: mnie namawiał, to opiszę, a nóż widelec ktoś coś będzie wiedział ;-)
U jednego klienta, na różnych komputerach, są z moim systemem dziwaczne problemy.
Aplikacja napisana w Delphi XE, działająca na Win10 Pro (kompilacja 17134.407).
Klient zgłasza, że program działa dobrze, po jakimś czasie zaczyna działać wolniej albo się zacina, zawiesza a w efekcie często po protu znika bez komunikatu błędu.
Używam Eureki, ale ona również niczego nie widzi.
Problem występuje tylko u jednego klienta (ale na wielu komputerach w firmie), ta sama aplikacja u innych działa poprawnie.
Sprawdziłem wszystko co mogłem w programie i jego otoczeniu, wszystko wydaje się OK.
I nagle wczoraj, na sesji z klientem zauważyłem coś, co mnie zmroziło.
- User odpala akcję dodaj załączniki
- Otwiera się standardowy OpenDialog.
- User wybiera pliku, które są dodawane do danego dokumentu.
Po chwili system wisi, potem znika.
Myślę: StackOverflow w aplikacji?
Sprawdzam jeszcze raz, ale coś mnie tknęło i włączyłem sobie TaskManagera z boku.
- Odpal formatki, wszytko ok.
- Chcę dodać załącznik, dodając plik z dysku.
- Odpala się OpenDialog i pamieć zostaje zużywana przez proces mojego programu w tempie 10-50 MiB na sekundę. Na oko. Po zamknięciu Open Dialog RAM dalej rośnie i nie przestaje aż do totalnej zwiechy.
W pierwszej chwili myślałem, że może coś ze strumieniami pogmerałem (które są używane przy wczytywaniu plików) albo cokolwiek.
Ale dobra, proszę klienta o restart aplikacji i chcę sprawdzić czysty OpenDialog bez żadnych strumieni.
Wiem, gdzie mam prosty temat również ze standardowym OpenDialog.
Wykonujemy akcję, która odpala OpenDialog i program w tle nic nie robi - po prostu czeka aż OpenDialog się zamknie.
Otwarcie OpenDialog, znowu powoduje masowe zużywanie RAM.
WTF?!
Zauważam, że klient używa OpenDialog na wypasie - z włączonymi wszelkimi podglądami plików.
Używa dużo PDFów i przeglądarki PDFów z Acrobat Readera, która się integruje z Windows Explorer.
I ta przeglądarka jest osadzona w OpenDialog.
Nie wiem czy to trop, ale proszę go takie skonfigurowanie dialogów, aby przeglądarki plików i katalogów zostały wyłączone.
Sprawdzam ponownie.
Teraz działa normalnie.
Czy ktoś coś wie?
Czy ktoś z Was spotkał się z takim tematem?
A może jakieś sugestie?
Sam chcę sprawdzić inne użycie OpenDialog. Może nie Delphiowe (które używa standardowego OpenDialog z windows), jeszcze nie wiem co i jak dokładnie...