Performance PictureBox



  • Hallo ihr lieben,

    ich habe eine Windowsform, in der ich über eine Suchfunktion eine ListBox mit relevanten Objekten (Klasse = Film) befülle. Jedes Objekt Film hat dabei einige für mich interessante Attribute, wie zum Beispiel Titel, Inhalt und Bild.

    Beim SelectedIndexChangedEvent der ListBOx wird unter Anderem das Bild einer PictureBox gesetzt:

    private void FillImageInfo(Movie movie)
    {
        ResetImageInfo();
        if (movie == null) return;
        if (!string.IsNullOrEmpty(movie.Image))
            pbPreview.ImageLocation = movie.Image;
    }
    

    Dabei habe ich das Problem, dass die Filminformationen alle sofort vorhanden sind, während in der PictureBox zunächst das Error-Image zu sehen ist und erst nach 5-10 Sekunden erscheint das Bild.

    Deshalb meine Frage, ob diese Wartezeit abhängig von der Website ist, was bedeutet, dass ich dann damit leben muss.
    Oder gibt es einen besseren Weg, als das Bild über ImageLocation über eine URL zu laden?



  • Wenn du das Bild erst aus dem Internet laden musst, dann wird es natürlich etwas dauern. Wobei 5-10 Sekunden sich übertrieben anhören. Ich glaub jetzt aber auch nicht, dass hier irgendwas besonders umständlich gemacht wird, was du großartig verbssern könntest.
    Was du auf jeden Fall machen könntest, wäre das Bild selber zu cachen, falls der Benutzer nochmal denselben Eintrag auswählt. Und vielleicht eine Ladeanimation anzeigen, während das geladen wird. Wirklich schneller kriegst es aber wahrscheinlich nicht hin.



  • Alles klar vielen Dank.



  • Falls du keinen Proxy verwendest, schreib mal in die Main

    WebRequest.DefaultWebProxy = null;
    

    Sonst sucht .Net nach dem Standardproxy, auch wenn es gar keinen gibt. Mit der Zeile zusätzlich gehen WebRequests normalerweise so flott, wie man es erwarten würde.


Log in to reply