Out-of-memory-laden-Bild auf Xamarin.Formen

Meine app braucht zu laden, das gleiche Bild, eine bestimmte Anzahl von Zeiten. Somit brauche ich zum verwalten der Speicher-Nutzung, da nach ein paar Iterationen, es läuft out of memory. Ich bin versucht, Garbage-Collector, aber es funktioniert nicht. Ich Tue dies in meiner Content-Seite.

Mein code sieht wie folgt aus:

private async Task ExecuteTests(string imageResource) 
{

    //Do stuff

    for (int q = 0; q < NUMBER_OF_TESTS; q++) {

        //Do some work

        await LoadImageAsync (imageResource);

        //Do stuff

        if (q < NUMBER_OF_TESTS - 1) {
            stkImage.Children.Remove(mImageTested);
            mImageTested = null;
            GC.Collect ();
        }
    }
}

private async Task LoadImageAsync(string imageURI) 
{
    mImageTested = new Image { Aspect = Aspect.AspectFit };
    Task<ImageSource> result = Task<ImageSource>.Factory.StartNew(() => ImageSource.FromFile(imageURI));
    mImageTested.Source = await result;
    stkImage.Children.Add(mImageTested);
}
Ich denke, Sie haben ein misstake in deinem Beispiel. Es fügt ein paar neue Bilder zu stkImage.Kinder-und entfernt dann die letzten. Die anderen sind noch in stkImage.Kinder, so der GC.Collect() nicht entfernen. Ich bin auch gefragt, warum Sie benötigen, um mehrere Bilder für das gleiche Bild? Können Sie nicht einfach den Verweis zu einem Bild mehrfach? Sparen Sie Arbeitsspeicher.
es ist für Diplom-Zweck. Ich Schaffe eine Art benchmark. In diesem Teil der Arbeit muss ich ein Bild laden rund 50 mal und misst die Durchschnittliche Zeit, um es zu laden. Ich könnte dies manuell tun, z.B. die Ausführung jeder Ausführung und Messen die Zeit, und dann den Durchschnitt berechnen, aber ich möchte diese in einer Schleife, wenn es möglich ist natürlich. Wenn ich ein Bild Referenz, meine Messung nicht so genau sein. Was ich versuche mit diesem code ist: - Fügen Sie ein Bild - Wenn es nicht das Letzte Ausführung, entfernen Sie es und rufen Sie GC.Sammeln()

InformationsquelleAutor Bernardo Rocha | 2016-06-05

Schreibe einen Kommentar