简体   繁体   English

在Xamarin.Forms上加载内存图片

[英]Out of memory loading image on Xamarin.Forms

My app needs to load the same image a certain number of times. 我的应用需要加载相同图像一定次数。 Thus, I need to manage the memory usage because after a few iterations it runs out of memory. 因此,我需要管理内存使用,因为经过几次迭代后,内存耗尽。 I am trying to use Garbage Collector, but it isn't working. 我正在尝试使用垃圾收集器,但它无法正常工作。 I am doing this in my Content Page. 我在我的内容页面中这样做。

My code looks like: 我的代码看起来像:

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);
}

Maybe this can help you manage the memory: 也许这可以帮助你管理内存:

https://github.com/luberda-molinet/FFImageLoading https://github.com/luberda-molinet/FFImageLoading

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM